diff options
author | Darren Tucker <dtucker@zip.com.au> | 2006-06-25 08:25:25 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2006-06-25 08:25:25 +1000 |
commit | 144e8d60cd3dcfdbf23c6df06617adf28b1235b8 (patch) | |
tree | d5f2d0a42de6557c30053d5d44108837266ca2f2 /channels.c | |
parent | 03890e44cd4814c2a9909febe5130fef722c7f4b (diff) |
- (dtucker) [channels.c serverloop.c] Apply the bug #1102 workaround to ptys
only, otherwise sshd can hang exiting non-interactive sessions.
Diffstat (limited to 'channels.c')
-rw-r--r-- | channels.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1422,7 +1422,8 @@ channel_handle_rfd(Channel *c, fd_set *readset, fd_set *writeset) #ifndef PTY_ZEROREAD if (len <= 0) { #else - if (len < 0 || (len == 0 && errno != 0)) { + if ((!c->isatty && len <= 0) || + (c->isatty && (len < 0 || (len == 0 && errno != 0)))) { #endif debug2("channel %d: read<=0 rfd %d len %d", c->self, c->rfd, len); |