Fix bug pointed out by jhawk; we weren't looking for all ptys
authorSam Hartman <hartmans@mit.edu>
Mon, 24 Jun 1996 04:16:28 +0000 (04:16 +0000)
committerSam Hartman <hartmans@mit.edu>
Mon, 24 Jun 1996 04:16:28 +0000 (04:16 +0000)
on SunOS or NetBSD.  Also fix Hpux 10 bug with regard to utmpx.

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

src/util/pty/ChangeLog
src/util/pty/configure.in
src/util/pty/getpty.c
src/util/pty/init_slave.c
src/util/pty/update_wtmp.c

index 104d3a64821312456d07d183f7d23860c684cf71..87250edf35dec18e848fa72107e39e58cccedb9b 100644 (file)
@@ -1,7 +1,19 @@
+
 Thu Jun 13 22:14:24 1996  Tom Yu  <tlyu@voltage-multiplier.mit.edu>
 
        * configure.in: remove ref to ET_RULES
 
+
+Thu Jun 13 14:12:16 1996  Sam Hartman  <hartmans@mit.edu>
+
+       * update_wtmp.c (ptyint_update_wtmp): Only update wtmpx if we have
+       updwtmpx.  This probably should be more general, but I'm not
+       really sure of HP caviats.
+
+       * configure.in :  check for updwtmpx
+
+       * getpty.c (pty_getpty): Actually check for 256 ptys on SunOS and
+       other old-style systems.
 Tue Apr 16 22:06:36 1996  Ken Raeburn  <raeburn@cygnus.com>
 
        * dump-utmp.c: New file.  Not automatically used by anything, but
index 7260b6526c915d2df224f4635d976ad2d4d98277..f64568139727d13c9d4335dd7c78a197069d3476 100644 (file)
@@ -63,7 +63,7 @@ AC_FUNC_CHECK(openpty,AC_DEFINE(HAVE_OPENPTY))
 AC_FUNC_CHECK(logwtmp,AC_DEFINE(HAVE_LOGWTMP))
 AC_CHECK_HEADERS(unistd.h stdlib.h string.h utmpx.h utmp.h sys/filio.h sys/sockio.h sys/label.h sys/tty.h ttyent.h lastlog.h sys/select.h sys/ptyvar.h)
 AC_CHECK_HEADERS(sys/wait.h)
-AC_CHECK_FUNCS(waitpid)
+AC_CHECK_FUNCS(waitpid updwtmpx)
 DECLARE_SYS_ERRLIST
 KRB5_SIGTYPE
 CHECK_SIGNALS
index 008422557402e9794e7429ed59b57c02e95a7373..1185f2c6f2061b813ce0710a30d14da1e3cf6942 100644 (file)
@@ -25,7 +25,7 @@ long pty_getpty (fd, slave, slavelength)
     int slavelength;
     int *fd; char *slave;
 {
-    char c;
+  char *cp;
     char *p;
     int i,ptynum;
     struct stat stb;
@@ -44,7 +44,7 @@ close(slavefd);
 #else /*HAVE_OPENPTY*/
 #ifdef HAVE__GETPTY
     /* This code is included for Irix; as of version 5.3, Irix has /dev/ptmx,
-     * but it fails to work properly; even cafter calling unlockpt,
+     * but it fails to work properly; even after calling unlockpt,
      * root gets permission denied opening the pty.
      * The code to support _getpty should be removed if Irix gets working
      * streams ptys in favor of maintaining the least needed code
@@ -113,9 +113,9 @@ close(slavefd);
 
     } else {
     
-       for (c = 'p'; c <= 's'; c++) {
+       for (cp = "pqrstuvwxyzPQRST";*cp; cp++) {
            sprintf(slavebuf,"/dev/ptyXX");
-           slavebuf[strlen("/dev/pty")] = c;
+           slavebuf[strlen("/dev/pty")] = *cp;
            slavebuf[strlen("/dev/ptyp")] = '0';
            if (stat(slavebuf, &stb) < 0)
                break;
index 09efc8d9a72a81da8f2060b761782108610fe237..74564763b292841dda0ea1fae7f707f514f39796 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * pty_open_slave: open slave side of terminal, clearing for use.
+ * pty_init_slave: open slave side of terminal, clearing for use.
  *
  * Copyright 1995, 1996 by the Massachusetts Institute of Technology.
  * 
index 8017b1100c6458c97065d417e3a1f30aabff586f..c2f9461ec14fc29246815bd5f89426cc8040dc13 100644 (file)
@@ -40,7 +40,7 @@ long ptyint_update_wtmp (ent , host, user)
     struct utmp ut;
     struct stat statb;
     int fd;
-#ifdef HAVE_SETUTXENT
+#ifdef HAVE_UPDWTMPX
     struct utmpx utx;
 
     getutmpx(ent, &utx);
@@ -54,10 +54,10 @@ long ptyint_update_wtmp (ent , host, user)
 #endif
 
 #ifdef HAVE_UPDWTMP
-#ifndef HAVE_SETUTXENT
+#ifndef HAVE_UPDWTMPX
 /* This is already performed byupdwtmpx if present.*/
     updwtmp(WTMP_FILE, ent);
-#endif /* HAVE_SETUTXENT*/
+#endif /* HAVE_UPDWTMPX*/
 #else /* HAVE_UPDWTMP */
 
     if ((fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0)) >= 0) {