patch to sshpty.c

Roger Cornelius rac at tenzing.org
Fri May 10 10:45:59 EST 2002


Tim,

I posted this patch to the list on February 12th in response to a
message from "Frank S. Bernhardt" (frank at bcsi.ca).  Except for the fact
that it's now against sshpty.c instead of session.c, one comment has
been changed, and I had enclosed it within #ifdefs, the patch is the
same.  I'm happy the patch will benefit other ssh users (that's why I
posted it), but it would be nice if I were at least credited.

Roger Cornelius

Tim Rice (tim at multitalents.net) wrote:

>
>Sorry, forgot to fix the subject.
>
>On Thu, 9 May 2002, Tim Rice wrote:
>
>Anyone have a problem with this patch?
>
>It fixes stty problems on SCO with broken (most PC) clients.
>It only effects systems that use BSD-style ptys.
>Ie. running  "egrep "PTY|DEV" config.h" produces
>/* #undef HAVE_DEV_PTMX */
>/* #undef HAVE_DEV_PTS_AND_PTC */
>/* #undef HAVE_OPENPTY */
>/* #undef HAVE_PTY_H */
>/* #undef HAVE__GETPTY */
>
>----------< cut >----------
>--- sshpty.c.old	Tue Jan 15 17:06:39 2002
>+++ sshpty.c	Thu May  9 12:19:06 2002
>@@ -199,6 +199,7 @@
> 	const char *ptyminors = "0123456789abcdef";
> 	int num_minors = strlen(ptyminors);
> 	int num_ptys = strlen(ptymajors) * num_minors;
>+	struct termios tio;
>
> 	for (i = 0; i < num_ptys; i++) {
> 		snprintf(buf, sizeof buf, "/dev/pty%c%c", ptymajors[i / num_minors],
>@@ -223,6 +224,19 @@
> 			close(*ptyfd);
> 			return 0;
> 		}
>+		/* set tty modes to a sane state for broken clients */
>+		if (tcgetattr(*ptyfd, &tio) < 0)
>+			log("Getting tty modes for pty failed: %.100s", strerror(errno));
>+		else {
>+			tio.c_lflag |= (ECHO | ISIG | ICANON);
>+			tio.c_oflag |= (OPOST | ONLCR);
>+			tio.c_iflag |= ICRNL;
>+
>+			/* Set the new modes for the terminal. */
>+			if (tcsetattr(*ptyfd, TCSANOW, &tio) < 0)
>+				log("Setting tty modes for pty failed: %.100s", strerror(errno));
>+		}
>+
> 		return 1;
> 	}
> 	return 0;
>----------< end cut >----------
>
>-- 
>Tim Rice				Multitalents	(707) 887-1469
>tim at multitalents.net
>
>_______________________________________________
>openssh-unix-dev at mindrot.org mailing list
>http://www.mindrot.org/mailman/listinfo/openssh-unix-dev
>


-- 
Roger Cornelius        rac at tenzing.org



More information about the openssh-unix-dev mailing list