diff options
author | Jeff Forcier <jeff@bitprophet.org> | 2012-11-28 22:22:33 -0800 |
---|---|---|
committer | Jeff Forcier <jeff@bitprophet.org> | 2012-11-28 22:22:33 -0800 |
commit | 2403504b44de773c3f566e7d647bc0e8661af918 (patch) | |
tree | 2231c0a2716a8d00504569012f81d99417526d94 | |
parent | 10c51e27263afb62c395ca2905195482d7c3b630 (diff) |
Fix #113: add timeout passthru to exec_command
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | paramiko/client.py | 5 |
2 files changed, 11 insertions, 1 deletions
@@ -12,6 +12,13 @@ Issues noted as "Fabric #NN" can be found at https://github.com/fabric/fabric/. Releases ======== +v1.10.0 (DD MM YYYY) +-------------------- + +* #113: Add `timeout` parameter to `SSHClient.exec_command` for easier setting + of the command's internal channel object's timeout. Thanks to Cernov Vladimir + for the patch. + v1.9.0 (6th Nov 2012) --------------------- diff --git a/paramiko/client.py b/paramiko/client.py index 07560a39..97ae4494 100644 --- a/paramiko/client.py +++ b/paramiko/client.py @@ -350,7 +350,7 @@ class SSHClient (object): self._agent.close() self._agent = None - def exec_command(self, command, bufsize=-1): + def exec_command(self, command, bufsize=-1, timeout=None): """ 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 @@ -361,12 +361,15 @@ class SSHClient (object): @type command: str @param bufsize: interpreted the same way as by the built-in C{file()} function in python @type bufsize: int + @param timeout: set command's channel timeout. See L{Channel.settimeout}.settimeout + @type timeout: 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.settimeout(timeout) chan.exec_command(command) stdin = chan.makefile('wb', bufsize) stdout = chan.makefile('rb', bufsize) |