2001-01-12 Sam Hartman <hartmans@mit.edu>
authorSam Hartman <hartmans@mit.edu>
Sun, 14 Jan 2001 03:26:06 +0000 (03:26 +0000)
committerSam Hartman <hartmans@mit.edu>
Sun, 14 Jan 2001 03:26:06 +0000 (03:26 +0000)
* krlogin.c: Previously, we only used TIOCGLTC  on systems with
termios.  This is sort of silly since its a BSD 4.[23] IOCTL.  We
then go out of our way not to use it on IRIX, Solaris or HPUX.  I
think all this comes about because you really want to use BSD
IOCTLS on Sunos rather than termios.  I propose to do that and
never use BSD IOCTLs on Sunos.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12902 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/bsd/ChangeLog
src/appl/bsd/configure.in
src/appl/bsd/krlogin.c

index 903d098994e856a9865de00bfaea64f9eb4e9390..cf161425054f0b9be63b8b9500e24f74616317d6 100644 (file)
@@ -1,3 +1,13 @@
+2001-01-12  Sam Hartman  <hartmans@mit.edu>
+
+       * krlogin.c: Previously, we only used TIOCGLTC  on systems with
+       termios.  This is sort of silly since its a BSD 4.[23] IOCTL.  We
+       then go out of our way not to use it on IRIX, Solaris or HPUX.  I
+       think all this comes about because you really want to use BSD
+       IOCTLS on Sunos rather than termios.  I propose to do that and
+       never use BSD IOCTLs on Sunos.
+
+
 2000-12-15  Ken Raeburn  <raeburn@mit.edu>
 
        * krlogin.c (main): Add new "-4" option, to use krb4
index 16aa7c263d39f19d3c92280b5065255ea27b734a..ae908c2d272ef491d16d007622bb43fdc76cd71f 100644 (file)
@@ -40,6 +40,9 @@ alpha*-dec-osf*)
                LOGINLIBS="$LOGINLIBS -lsecurity"
        )
        ;;
+*-*-sunos4*)
+       ac_cv_header_termios_h=no
+       ;;
 esac
 dnl 
 dnl After beta6 this functionality will be integrated with aclocal.m4
index 3b7a6637a4a2a660611e0caac72d4e5c77f4e5ce..f1b70f68c46329bf11bb85ee500049a2622316de 100644 (file)
@@ -138,12 +138,6 @@ char copyright[] =
 #endif
 #endif
 
-/* how do we tell apart irix 5 and irix 4? */
-#if defined(__sgi) && defined(__mips)
-/* IRIX 5: TIOCGLTC doesn't actually work */
-#undef TIOCGLTC
-#endif
-
 #ifndef TIOCPKT_NOSTOP
 /* These values are over-the-wire protocol, *not* local values */
 #define TIOCPKT_NOSTOP          0x10
@@ -798,6 +792,8 @@ struct tchars {
 };
 #endif
 
+
+#ifndef POSIX_TERMIOS
 #ifdef TIOCGLTC
 /*
  * POSIX 1003.1-1988 does not define a 'suspend' character.
@@ -811,14 +807,8 @@ struct tchars {
 struct ltchars defltc;
 struct ltchars noltc = { -1, -1, -1, -1, -1, -1 };
 #endif
-
-#ifndef POSIX_TERMIOS
 struct tchars deftc;
 struct tchars notc =   { -1, -1, -1, -1, -1, -1 };
-#ifndef TIOCGLTC
-struct ltchars defltc;
-struct ltchars noltc = { -1, -1, -1, -1, -1, -1 };
-#endif
 #endif
 
 doit(oldmask)
@@ -836,9 +826,6 @@ doit(oldmask)
     /* there's a POSIX way of doing this, but do we need it general? */
     deftty.c_cc[VLNEXT] = 0;
 #endif
-#ifdef TIOCGLTC
-    (void) ioctl(0, TIOCGLTC, (char *)&defltc);
-#endif
 #else
 #ifdef USE_TERMIO
     struct termio sb;
@@ -1162,14 +1149,6 @@ writer()
              }
            }
 
-#ifdef TIOCGLTC
-       if ((c == defltc.t_suspc || c == defltc.t_dsuspc)
-           && !no_local_escape) {
-         echo(c);
-         stop(c);
-         continue;
-       }
-#else
 #ifdef POSIX_TERMIOS
        if ( (
              (c == deftty.c_cc[VSUSP]) 
@@ -1182,8 +1161,17 @@ writer()
          stop(c);
          continue;
        }
+#else /*POSIX_TERMIOS*/
+#ifdef TIOCGLTC
+       if ((c == defltc.t_suspc || c == defltc.t_dsuspc)
+           && !no_local_escape) {
+         echo(c);
+         stop(c);
+         continue;
+       }
+#endif /*TIOCGLTC*/
 #endif
-#endif
+
       
        if (c != cmdchar) {
          rcmd_stream_write(rem, &cmdchar, 1, 0);
@@ -1257,10 +1245,6 @@ int read_wrapper(fd,buf,size,got_esc)
     bol = (c == deftty.c_cc[VKILL] ||
           c == deftty.c_cc[VINTR] ||
           c == '\r' || c == '\n');
-#ifdef TIOCGLTC
-    if (!bol)
-      bol = (c == defltc.t_suspc);
-#endif
        
 #else /* !POSIX_TERMIOS */
     bol = c == defkill || c == deftc.t_eofc ||
@@ -1315,14 +1299,13 @@ stop(cmdc)
     (void) signal(SIGCHLD, SIG_IGN);
 #endif
     
-#ifdef TIOCGLTC
-    (void) kill(cmdc == defltc.t_suspc ? 0 : getpid(), SIGTSTP);
-#else
 #ifdef POSIX_TERMIOS
     (void) kill(cmdc == deftty.c_cc[VSUSP] ? 0 : getpid(), SIGTSTP);
+#else
+#ifdef TIOCGLTC
+    (void) kill(cmdc == defltc.t_suspc ? 0 : getpid(), SIGTSTP);
 #endif
 #endif
-
 #ifdef POSIX_SIGNALS
     sa.sa_handler = catchild;
     (void) sigaction(SIGCHLD, &sa, (struct sigaction *)0);
@@ -1642,11 +1625,6 @@ mode(f)
 
     switch(f) {
     case 0:
-#ifdef TIOCGLTC
-#if !defined(sun)
-       (void) ioctl(0, TIOCSLTC, (char *)&defltc);
-#endif
-#endif
        (void) tcsetattr(0, TCSADRAIN, &deftty);
        break;
     case 1:
@@ -1683,14 +1661,6 @@ mode(f)
        newtty.c_cc[VMIN] = 1;
        newtty.c_cc[VTIME] = 0;
        (void) tcsetattr(0, TCSADRAIN, &newtty);
-#ifdef TIOCGLTC
-       /* Do this after the tcsetattr() in case this version
-        * of termio supports the VSUSP or VDSUSP characters */
-#if !defined(sun)
-       /* this forces ICRNL under Solaris... */
-       (void) ioctl(0, TIOCSLTC, (char *)&noltc);
-#endif
-#endif
        break;
     default:
        return;