diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | channels.c | 5 | ||||
-rw-r--r-- | channels.h | 1 |
3 files changed, 8 insertions, 3 deletions
@@ -1,3 +1,6 @@ +20020722 + - (bal) AIX tty data limiting patch fix by leigh@solinno.co.uk + 20020721 - (stevesk) [auth-pam.c] merge cosmetic changes from solar's openssh-3.4p1-owl-password-changing.diff @@ -1408,4 +1411,4 @@ - (stevesk) entropy.c: typo in debug message - (djm) ssh-keygen -i needs seeded RNG; report from markus@ -$Id: ChangeLog,v 1.2386 2002/07/21 23:59:40 stevesk Exp $ +$Id: ChangeLog,v 1.2387 2002/07/22 15:28:53 mouring Exp $ @@ -186,6 +186,7 @@ channel_register_fds(Channel *c, int rfd, int wfd, int efd, } else { c->isatty = 0; } + c->wfd_isatty = isatty(c->wfd); /* enable nonblocking mode */ if (nonblock) { @@ -1286,12 +1287,12 @@ channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset) buffer_len(&c->output) > 0) { data = buffer_ptr(&c->output); dlen = buffer_len(&c->output); - len = write(c->wfd, data, dlen); #ifdef _AIX /* XXX: Later AIX versions can't push as much data to tty */ - if (compat20 && c->isatty && dlen >= 8*1024) + if (compat20 && c->wfd_isatty && dlen > 8*1024) dlen = 8*1024; #endif + len = write(c->wfd, data, dlen); if (len < 0 && (errno == EINTR || errno == EAGAIN)) return 1; if (len <= 0) { @@ -77,6 +77,7 @@ struct Channel { int efd; /* extended fd */ int sock; /* sock fd */ int isatty; /* rfd is a tty */ + int wfd_isatty; /* wfd is a tty */ int force_drain; /* force close on iEOF */ int delayed; /* fdset hack */ Buffer input; /* data read from socket, to be sent over |