summaryrefslogtreecommitdiff
path: root/clientloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'clientloop.c')
-rw-r--r--clientloop.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/clientloop.c b/clientloop.c
index 43332d1f4..0e477bc79 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -59,7 +59,7 @@
59 */ 59 */
60 60
61#include "includes.h" 61#include "includes.h"
62RCSID("$OpenBSD: clientloop.c,v 1.83 2001/10/10 22:18:47 markus Exp $"); 62RCSID("$OpenBSD: clientloop.c,v 1.84 2001/10/11 15:24:00 markus Exp $");
63 63
64#include "ssh.h" 64#include "ssh.h"
65#include "ssh1.h" 65#include "ssh1.h"
@@ -343,9 +343,12 @@ client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp,
343 FD_SET(fileno(stderr), *writesetp); 343 FD_SET(fileno(stderr), *writesetp);
344 } else { 344 } else {
345 /* channel_prepare_select could have closed the last channel */ 345 /* channel_prepare_select could have closed the last channel */
346 if (session_closed && !channel_still_open()) { 346 if (session_closed && !channel_still_open() &&
347 if (!packet_have_data_to_write()) 347 !packet_have_data_to_write()) {
348 return; 348 /* clear mask since we did not call select() */
349 memset(*readsetp, 0, *maxfdp);
350 memset(*writesetp, 0, *maxfdp);
351 return;
349 } else { 352 } else {
350 FD_SET(connection_in, *readsetp); 353 FD_SET(connection_in, *readsetp);
351 } 354 }