- (bal) AIX tty data limiting patch fix by leigh@solinno.co.uk
diff --git a/ChangeLog b/ChangeLog
index cfe70b2..432d7a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 $
diff --git a/channels.c b/channels.c
index cf6742a..fe99cdb 100644
--- a/channels.c
+++ b/channels.c
@@ -186,6 +186,7 @@
} else {
c->isatty = 0;
}
+ c->wfd_isatty = isatty(c->wfd);
/* enable nonblocking mode */
if (nonblock) {
@@ -1286,12 +1287,12 @@
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) {
diff --git a/channels.h b/channels.h
index dd54114..bd2e925 100644
--- a/channels.h
+++ b/channels.h
@@ -77,6 +77,7 @@
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