Commit Graph

70 Commits

Author SHA1 Message Date
Robey Pointer f573017a1d patch from evan jones: simplify wait_for_event. 2009-07-19 20:53:00 -07:00
Robey Pointer 60c6e94e7d fix my email address to be the current one. 2009-07-19 19:45:02 -07:00
Robey Pointer 97ea105d4e [project @ robey@lag.net-20080707002355-kl44yurqgjfhk7dd]
clarify documentation about non-blocking mode
2008-07-06 17:23:55 -07:00
Robey Pointer 305f5e09a5 [project @ robey@lag.net-20080604053906-vz5toqvlp5miqy1x]
merge deadlog bugfix from dwayne litzenberger.
2008-06-03 22:39:06 -07:00
Robey Pointer 50d63690ee [project @ robey@lag.net-20080323023616-fpo17kr0qxxbgthv]
bug 200416:
don't create a new logger for every channel and every sftp client or server.
it causes python to leak lots of useless logger objects, because they never
go away. instead, log the channel # in the message, and use only a couple of
standard log nodes.
2008-03-22 19:36:16 -07:00
Robey Pointer 7854d600a7 [project @ robey@lag.net-20080323020709-ub8ya3xkh1ebywfa]
add exit_status_ready for justin cook.
2008-03-22 19:07:09 -07:00
Robey Pointer ceb65ed55f [project @ robey@lag.net-20080220055938-c772bcrnw9lm2kcd]
for forwarded-tcpip connections, stuff the origin_addr in a public field in
the Channel, in case recipients find it useful info.
2008-02-19 21:59:38 -08:00
Robey Pointer 92e92a9297 [project @ robey@lag.net-20071120052527-hloi0b30yngbay0x]
add send_ready() and a unit test.
2007-11-20 00:25:27 -05:00
Robey Pointer e3d9b90ea1 [project @ robey@lag.net-20071029030344-9adfzb9ulfodtepu]
bug 157205: select() doesn't notify incoming stderr data, because stderr's
pipe isn't hooked up to the fileno() BufferedPipe. to fix, i added an "or"
pipe-event that can be triggered by either stdout or stderr, and hooked
them both up to fileno(). added a unit test for the bug and one for the
"or" pipe.
2007-10-28 20:03:44 -07:00
Robey Pointer 6b71c642d1 [project @ robey@lag.net-20070218212332-ufb5mk2ne0bzamx5]
oops, fix doc typo
2007-02-18 13:23:32 -08:00
Robey Pointer 83b335e10f [project @ robey@lag.net-20070213191706-v8djxd4jiunb3his]
bump copyright year to 2007
2007-02-13 11:17:06 -08:00
Robey Pointer fec76c51b1 [project @ robey@lag.net-20061121001117-8mf8zzltvfvzzrv7]
add support for opening x11 channels, and a unit test
2006-11-20 16:11:17 -08:00
Robey Pointer 48bb10694b [project @ robey@lag.net-20061120192137-1rcpiiq9mcd58m76]
reorder the closing of the pipe in Channel.close() to make sure it happens even when the channel is closed by the remote host first
2006-11-20 11:21:37 -08:00
Robey Pointer 48afc3082a [project @ robey@lag.net-20061112063054-bf71926ff8c98c68]
a bit of cleanup in close() to try harder to avoid having lingering threads
2006-11-11 22:30:54 -08:00
Robey Pointer 6f4110a066 [project @ robey@lag.net-20060511011140-ab3550c28121f900]
fix a few bugs found by pycheck
2006-05-10 18:11:40 -07:00
Robey Pointer 1d2bd214c3 [project @ robey@lag.net-20060508002214-0403d95f73b152f5]
couple of doc fixes
2006-05-07 17:22:14 -07:00
Robey Pointer de1e072c73 [project @ robey@lag.net-20060507230153-dba6b2d664b5ef3f]
channel operations raise an exception on error now instead of returning a bool
2006-05-07 16:01:53 -07:00
Robey Pointer e7afd83308 [project @ robey@lag.net-20060412084250-bd347f3f01aca394]
flip the switch: use BufferedPipe inside Channel
2006-04-12 01:42:50 -07:00
Robey Pointer 2103553ff5 [project @ robey@lag.net-20060220040447-d7b79989d3b680ed]
remove @since that predate 1.0
2006-02-19 20:04:47 -08:00
Robey Pointer 8446c0bda1 [project @ robey@lag.net-20060220005934-58d0df2920e799b5]
update copyright year
2006-02-19 16:59:34 -08:00
Robey Pointer 619192814d [project @ robey@master-shake.local-20060206064228-23198d2e82bd7248]
add getpeername() call to make asyncore work better
2006-02-05 22:42:28 -08:00
Robey Pointer 0627f09494 [project @ robey@dhcp-192-168-1-88.danger.com-20060202005930-3248b8be189d5d23]
reorder the event check so that a positive event is noticed before a closed channel
2006-02-01 16:59:30 -08:00
Robey Pointer 2262f7f188 [project @ robey@master-shake.local-20060201193536-86f3fd393e7ef8f9]
don't clear the select pipe when the recv buffer is cleared out, if we're at EOF (found by thomas steinacher)
2006-02-01 11:35:36 -08:00
Robey Pointer cb3008b402 [project @ robey@master-shake.local-20060115063008-4f68552398868788]
fix a bunch of pychecker warnings, some of which were actual (but unlikely) bugs
2006-01-14 22:30:08 -08:00
Robey Pointer 373e65dd97 [project @ robey@lag.net-20051204090235-431d6d71cee11f68]
don't call _send_user_message() while holding the channel lock.  the call may
block waiting for CTS (during rekey), and the feeder thread may be waiting on
the channel lock to clear out channel traffic before it gets to the kex-init.
instead, the 2 methods that wanted to send from inside the lock now just return
messages to send.  slightly hacky but functional. :)
2005-12-04 01:02:35 -08:00
Robey Pointer e7a45fee60 [project @ robey@lag.net-20051202204242-1fb4a6438ba50969]
nail down select() on EOF: occasionally a channel would be closed remotely but select() wouldn't trigger.  when a channel gets EOF or is closed, set the pipe FOREVER.
2005-12-02 12:42:42 -08:00
Robey Pointer 3c67e35b5f [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-71]
the window-adjust can be sent outside of the lock, as long as the window size tracking is done within the lock (ie: allocate window space within the lock, then send the ack later) -- helps avoid deadlocks
2005-10-29 20:41:14 +00:00
Robey Pointer 6eab0b3b4d [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-65]
remove unnecessary shebangs, fix import lines to be explicit about imports from within paramiko, and a bit of whitespace cleanup
2005-10-13 18:52:59 +00:00
Robey Pointer e9ccd7ea20 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-45]
yeah! figured out the last things that were causing GC cycles and got rid of them: Channels, Transports, SFTPClients, and SFTPFiles can all have __del__ methods now, which auto-close themselves :)
2005-07-17 20:06:29 +00:00
Robey Pointer b5f0b3c786 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-37]
remove debug print
2005-07-14 02:36:15 +00:00
Robey Pointer f565576321 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-34]
fix a comment claiming that channels are closed automatically when GC'd (they aren't and can't be); don't close the pipe until the app explicitly calls close(); signal EOF via the pipe
2005-07-14 02:17:38 +00:00
Robey Pointer 0ac7b0dcbd [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-29]
a bunch of silly changes where i was trying to fix pychecker warnings before i decided it wasnt worth the effort
2005-07-10 09:56:00 +00:00
Robey Pointer 0b093e49b4 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-24]
the previous windows pipe fix still didn't work.  replace it with a new pipe.py abstraction of pipes (one for posix, one for windows) which appears to finally work on windows.  for real this time.  also add some more documentation to Channel to explain that after exec_command, invoke_shell, or invoke_subsystem, a Channel can't be reused.
2005-07-07 01:03:49 +00:00
Robey Pointer dff128c814 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-20]
fix docs and update version to 1.3.1
2005-06-28 08:00:12 +00:00
Robey Pointer c5d2e9904a [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-13]
change pipe method to something that probably works on windows (the old system did not); also fix a race in _unlink
2005-06-28 03:42:14 +00:00
Robey Pointer 36055c5ac2 [project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-5]
split out Packetizer, fix banner detection bug, new unit test
split out a chunk of BaseTransport into a Packetizer class, which handles
the in/out packet data, ciphers, etc.  it didn't make the code any smaller
(transport.py is still close to 1500 lines, which is awful) but it did split
out a coherent chunk of functionality into a discrete unit.

in the process, fixed a bug that alain spineux pointed out: the banner
check was too forgiving and would block forever waiting for an SSH banner.
now it waits 5 seconds for the first line, and 2 seconds for each subsequent
line, before giving up.

added a unit test to test keepalive, since i wasn't sure that was still
working after pulling out Packetizer.
2005-05-01 08:04:59 +00:00
Robey Pointer bd7911895b [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-164]
fix some docs
remove some epydoc comments about fileno() being non-portable.
2005-04-18 00:53:57 +00:00
Robey Pointer 5d8d1938fa [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-156]
rewrite channel pipes to work on windows
the pipe system i was using for simulating an os-level FD (for select) was
retarded.  i realized this week that i could just use a single byte in the
pipe to signal "data is ready" and not try to feed all incoming data thru
the pipe -- and then i don't have to try to make the pipe non-blocking (which
should make it work on windows).  a lot of duplicate code got removed and now
it's all going thru the same code-path on read.

there's still a slight penalty on incoming feeds and calling 'recv' when a
pipe has been opened (by calling 'fileno'), but it's tiny.

removed a bunch of documentation and comments about things not working on
windows, since i think they probably do now.
2005-03-26 05:53:00 +00:00
Robey Pointer fead211c5c [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-154]
even better 1.2 lapras
re-bump the version # to 1.2 (with a new date since i added more stuff).
add 2005 to the copyright date in a bunch of files.
2005-02-28 08:06:08 +00:00
Robey Pointer 4b8a9d3b7a [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-150]
when combining stderr with stdout on a channel, merge the buffers too
when turning on combine-stderr mode on a channel, grab the channel lock and
feed any existing stderr buffer into the normal buffer.  this should help
applications (and my unit tests) avoid races between data coming in over
stderr and setting combine-stderr.

_send_eof is now slightly safer too, although i don't think that really fixed
anything.  it just makes me feel better.
2005-02-28 07:14:11 +00:00
Robey Pointer 8ee26cd412 [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-149]
add thread ids to logs
add a logging filter that reports the thread-id of the logger, and use
that for all paramiko logging.  since thread-local stuff didn't appear
until python 2.4, i hacked up my own little version to assign incrementing
numbers to threads as they log.
2005-02-28 07:09:02 +00:00
Robey Pointer c7d56a309d [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-145]
add methods for sending/receiving a channel's exit status
track a channel's exit status and provide a method (recv_exit_status) to
block waiting for it to arrive.  also provide a convenience method for
servers to send it (send_exit_status).  add shutdown_read and shutdown_write.
fix a bug in sending window change requests.
2005-02-15 15:47:02 +00:00
Robey Pointer c1ed20c4af [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-141]
misc logging fixes
change the level of some log messages so interesting stuff gets logged at
info instead of debug.  fix an oops where channels defaulted to being in
ultra debug mode, and make this mode depend on a new Transport method:
"set_hexdump".
2005-01-25 05:17:55 +00:00
Robey Pointer 8878a5f3c2 [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-140]
more flexible logging
some tweaks to make channels etc follow the logger setting of their parent
transport, so that setting the log channel for a paramiko transport will
cause all sub-logging to branch out from that channel.

also, close all open file handles when the sftp server ends.
2005-01-17 10:09:09 +00:00
Robey Pointer 2d9ad663ba [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-130]
small fixups
move _wait_for_send_window into the right place in Channel.  remove outdated
note from auth_transport.  fix download url in setup.py.
2004-12-13 07:27:39 +00:00
Robey Pointer a3971274e8 [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-126]
server support for stderr & exec_command
for the server side of my stderr blunder, add send_stderr & sendall_stderr,
and make the sending side of makefile_stderr work correctly.

also, call check_channel_exec_request on a server object for exec requests
on a channel.
2004-12-12 09:25:15 +00:00
Robey Pointer 438673c11f [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-124]
docs fixup
fix a comment typo, and add @since designators to a couple of new methods.
2004-12-11 03:44:33 +00:00
Robey Pointer 37892fc0c7 [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-120]
add stderr support methods
big embarrassment: i didn't read the ssh2 docs close enough, and all this
time paramiko wasn't handling "extended_data" packets, which contain stderr
output.

so now, several new functions: recv_stderr_ready() and recv_stderr() to
mirror recv_ready() and recv(), and set_combined_stderr() to force stderr
to be combined into stdout.  also, makefile_stderr() to create a fake file
object to represent stderr.
2004-12-10 08:25:28 +00:00
Robey Pointer ed8b376205 [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-116]
doc fixups
explain "recv_ready" better, and add debug descriptions for the kex codes.
2004-11-26 22:07:31 +00:00
Robey Pointer 13f818f04f [project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-114]
fix typo in channel
fix typo that alain found: pipd_wfd -> pipe_wfd.
2004-11-22 07:40:39 +00:00