[1256] in Kerberos-V5-bugs
krb5b4pl3: appl/bsd/krlogin.c: make ^V work properly
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Thu Mar 23 15:23:45 1995
From: "Jonathan I. Kamens" <jik@cam.ov.com>
Date: Thu, 23 Mar 1995 15:26:53 -0500
To: krb5-bugs@MIT.EDU
Whenever ICANON is enabled/disabled, IEXTEN needs to be
enabled/disabled as well, so that ^V will be passed on to the remote
connection rather than interpreted locally.
Here's a patch:
--- krlogin.c 1995/03/23 20:18:58 1.13
+++ krlogin.c 1995/03/23 20:25:04
@@ -1231,7 +1231,7 @@
(void) ioctl(0, TIOCGETP, (char *)&sb);
#ifdef USE_TERMIO
sb.c_iflag |= IXOFF;
- sb.sg_flags &= ~ICANON;
+ sb.sg_flags &= ~(ICANON|IEXTEN);
#else
sb.sg_flags &= ~CBREAK;
sb.sg_flags |= RAW;
@@ -1244,7 +1244,7 @@
if (!eight && (mark & TIOCPKT_DOSTOP)) {
(void) ioctl(0, TIOCGETP, (char *)&sb);
#ifdef USE_TERMIO
- sb.sg_flags |= ICANON;
+ sb.sg_flags |= ICANON|IEXTEN;
sb.c_iflag |= IXON;
#else
sb.sg_flags &= ~RAW;
@@ -1391,16 +1391,15 @@
newtty.c_cc[VLNEXT] = 0;
#endif
- newtty.c_lflag &= ~(ICANON|ISIG|ECHO);
if (!flow)
{
- newtty.c_lflag &= ~(ICANON|ISIG|ECHO);
+ newtty.c_lflag &= ~(ICANON|IEXTEN|ISIG|ECHO);
newtty.c_iflag &= ~(BRKINT|INLCR|ICRNL|ISTRIP);
/* newtty.c_iflag |= (IXON|IXANY); */
newtty.c_iflag &= ~(IXON|IXANY);
newtty.c_oflag &= ~(OPOST);
} else {
- newtty.c_lflag &= ~(ICANON|ISIG|ECHO);
+ newtty.c_lflag &= ~(ICANON|IEXTEN|ISIG|ECHO);
newtty.c_iflag &= ~(INLCR|ICRNL);
/* newtty.c_iflag |= (BRKINT|ISTRIP|IXON|IXANY); */
newtty.c_iflag &= ~(IXON|IXANY);
@@ -1480,7 +1479,7 @@
** also turn off signal checking -- ICANON might be
** enough to do this, but we're being careful
*/
- sb.c_lflag &= ~(ECHO|ICANON|ISIG);
+ sb.c_lflag &= ~(ECHO|ICANON|IEXTEN|ISIG);
sb.c_cc[VTIME] = 1;
sb.c_cc[VMIN] = 1;
if (eight)