Make sure processes associated with the terminal are actually
authorSam Hartman <hartmans@mit.edu>
Mon, 19 Jun 1995 18:23:26 +0000 (18:23 +0000)
committerSam Hartman <hartmans@mit.edu>
Mon, 19 Jun 1995 18:23:26 +0000 (18:23 +0000)
dead before re-using the pty.  This is a temporary fix; the real fix
will make sure that the processes get a HUP when telnetd dies and will
be part of the libpty changes.

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

src/appl/telnet/telnetd/ChangeLog
src/appl/telnet/telnetd/sys_term.c

index 6cc7cf1091fdf85241e07ea588affe5ab2f79c77..b873243b3e9bc0dee073b95d57c9899a3cfe7537 100644 (file)
@@ -1,4 +1,3 @@
-
 Thu Jun 15 17:43:21 EDT 1995   Paul Park       (pjpark@mit.edu)
        * Makefile.in - Change explicit library names to -l<lib> form, and
                change target link line to use $(LD) and associated flags.
@@ -9,6 +8,18 @@ Thu Jun 15 17:43:21 EDT 1995   Paul Park       (pjpark@mit.edu)
                with the Berkeley database code.  Also, add shared library
                usage check.
 
+
+Thu Jun 15 16:18:39 1995  Sam Hartman  <hartmans@tardis.MIT.EDU>
+
+       * sys_term.c (getpty): On AIX, open /dev/ptc for master and use
+        ttyname() to get slave side; much simpler and doesn't get used
+        ptys.
+
+       (cleanopen): Revoke on AIX as well.  This may cause problems on early 3.2 versions, but not revoking causes disconnected sessions to be partially connected to new telnets.  The complete fix will be to make sure telnetd cleans up when it dies.
+
+
+
+
 Fri Jun  9 18:29:56 1995    <tytso@rsx-11.mit.edu>
 
        * configure.in: Remove standardized set of autoconf macros, which
index 24a4ac10c6a205963285b01c7b65519041703d7a..d5525625ffa884e8f95182455088d2f342d3081c 100644 (file)
@@ -508,6 +508,14 @@ int *ptynum;
        }
 
 #else  /* ! STREAMSPTY */
+#ifdef _AIX
+       if((p = open("/dev/ptc", 2)) != -1 ){
+         strcpy(line, ttyname(p));
+         chown( line, 0, 0);
+         chmod (line, 0600 );
+         return (p);
+       }
+       #else /*_AIX*/
 #ifndef CRAY
        register char *cp, *p1, *p2;
        register int i;
@@ -599,6 +607,7 @@ int *ptynum;
                }
        }
 #endif /* CRAY */
+#endif /*_AIX*/
 #endif /* STREAMSPTY */
        return(-1);
 }
@@ -1203,7 +1212,7 @@ cleanopen(line)
        (void) chmod(line, 0600);
 #endif
 
-# if !defined(CRAY) && (BSD > 43)
+# if (!defined(CRAY) && (BSD > 43))||defined(_AIX)
        (void) revoke(line);
 # endif
 #if    defined(_SC_CRAY_SECURE_SYS)