aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Shneyder <o.shneyder@phoca-gmbh.de>2014-01-22 21:06:13 +0100
committerAndreas Schneider <asn@cryptomilk.org>2014-02-02 22:21:07 +0100
commit5157d96958773bbaec0d52866d076f14d97d3b9e (patch)
treeffc19b572daf4fc5299058ed2509bcf2f6f762fc
parent6a0787a366ea598dff6ae09172b28522456a8606 (diff)
downloadlibssh-5157d96958773bbaec0d52866d076f14d97d3b9e.tar.gz
libssh-5157d96958773bbaec0d52866d076f14d97d3b9e.tar.xz
libssh-5157d96958773bbaec0d52866d076f14d97d3b9e.zip
Make function ssh_channel_accept() nonblocking if timeout is 0.
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/channels.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/channels.c b/src/channels.c
index b77ad0ac..9327616d 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -1997,7 +1997,11 @@ static ssh_channel ssh_channel_accept(ssh_session session, int channeltype,
* 50 ms. So we need to decrement by 100 ms.
*/
for (t = timeout_ms; t >= 0; t -= 100) {
- ssh_handle_packets(session, 50);
+ if (timeout_ms == 0) {
+ ssh_handle_packets(session, 0);
+ } else {
+ ssh_handle_packets(session, 50);
+ }
if (session->ssh_message_list) {
iterator = ssh_list_get_iterator(session->ssh_message_list);