summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--clientloop.c10
2 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9abaa26e..ea161b3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,10 @@
- markus@cvs.openbsd.org 2001/05/16 20:51:57
[authfile.c]
return comments for private pem files, too; report from nolan@naic.edu
+ - markus@cvs.openbsd.org 2001/05/16 21:53:53
+ [clientloop.c]
+ check for open sessions before we call select(); fixes the x11 client
+ bug reported by bowman@math.ualberta.ca
20010512
- OpenBSD CVS Sync
@@ -5414,4 +5418,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.1221 2001/05/17 03:17:55 mouring Exp $
+$Id: ChangeLog,v 1.1222 2001/05/17 03:19:40 mouring Exp $
diff --git a/clientloop.c b/clientloop.c
index ba957fe4..cea6e77d 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -59,7 +59,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: clientloop.c,v 1.70 2001/05/11 14:59:55 markus Exp $");
+RCSID("$OpenBSD: clientloop.c,v 1.71 2001/05/16 21:53:53 markus Exp $");
#include "ssh.h"
#include "ssh1.h"
@@ -346,7 +346,13 @@ client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp,
if (buffer_len(&stderr_buffer) > 0)
FD_SET(fileno(stderr), *writesetp);
} else {
- FD_SET(connection_in, *readsetp);
+ /* channel_prepare_select could have closed the last channel */
+ if (session_closed && !channel_still_open()) {
+ if (!packet_have_data_to_write())
+ return;
+ } else {
+ FD_SET(connection_in, *readsetp);
+ }
}
/* Select server connection if have data to write to the server. */