]> andersk Git - openssh.git/commitdiff
- (dtucker) [channels.c configure.ac] Bug #1528: skip the tcgetattr call on
authordtucker <dtucker>
Fri, 28 Aug 2009 01:02:37 +0000 (01:02 +0000)
committerdtucker <dtucker>
Fri, 28 Aug 2009 01:02:37 +0000 (01:02 +0000)
    the pty master on Solaris, since it never succeeds and can hang if large
    amounts of data is sent to the slave (eg a copy-paste).  Based on a patch
    originally from Doke Scott, ok djm@

ChangeLog
channels.c
configure.ac

index 90da28c171ae529f73327b5cfff590026dcdd173..e24f732747debdacb6ae447789518db8856d1f10 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,10 @@
    attempting atomic rename(); ok dtucker@
  - (djm) [Makefile.in] bz#1505: Solaris make(1) doesn't accept make variables
    in argv, so pass them in the environment; ok dtucker@
+ - (dtucker) [channels.c configure.ac] Bug #1528: skip the tcgetattr call on
+    the pty master on Solaris, since it never succeeds and can hang if large
+    amounts of data is sent to the slave (eg a copy-paste).  Based on a patch
+    originally from Doke Scott, ok djm@
 
 20090820
  - (dtucker) [includes.h] Bug #1634: do not include system glob.h if we're not
index efb04d65537dedf07d0b229f1e60a563be555f49..e8b8aa07e16eb91897a1acf424a44f538c959f55 100644 (file)
@@ -1653,6 +1653,7 @@ channel_handle_wfd(Channel *c, fd_set *readset, fd_set *writeset)
                        }
                        return -1;
                }
+#ifndef BROKEN_TCGETATTR_ICANON
                if (compat20 && c->isatty && dlen >= 1 && buf[0] != '\r') {
                        if (tcgetattr(c->wfd, &tio) == 0 &&
                            !(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) {
@@ -1666,6 +1667,7 @@ channel_handle_wfd(Channel *c, fd_set *readset, fd_set *writeset)
                                packet_send();
                        }
                }
+#endif
                buffer_consume(&c->output, len);
                if (compat20 && len > 0) {
                        c->local_consumed += len;
index 089c2e3e979e0ebb7dc2d219e9289c4babc992f8..9524d5c34cb0a86c6620468ec81b163fc875e29a 100644 (file)
@@ -671,6 +671,7 @@ mips-sony-bsd|mips-sony-newsos4)
                after setsid()])
        AC_DEFINE(PASSWD_NEEDS_USERNAME, 1, [must supply username to passwd
                in case the name is longer than 8 chars])
+       AC_DEFINE(BROKEN_TCGETATTR_ICANON, tcgetattr with ICANON may hang)
        external_path_file=/etc/default/login
        # hardwire lastlog location (can't detect it on some versions)
        conf_lastlog_location="/var/adm/lastlog"
This page took 0.110082 seconds and 5 git commands to generate.