Test for and use setutsent, based on a patch from Nate Yocom at Centrify.
authorKen Raeburn <raeburn@mit.edu>
Sat, 17 Jun 2006 00:57:22 +0000 (00:57 +0000)
committerKen Raeburn <raeburn@mit.edu>
Sat, 17 Jun 2006 00:57:22 +0000 (00:57 +0000)
Modified to restrict the configure test to just the pty library.

ticket: 3423

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

src/appl/libpty/configure.in
src/appl/libpty/update_utmp.c

index f8930d0e2702f69a39abf20f025a8de9aa5ccde5..cb5fe7e71830ca8d52ba9fffa450200d9cd19ff0 100644 (file)
@@ -63,7 +63,7 @@ AC_CHECK_HEADER(sys/ptyvar.h, [], [],
 #
 
 AC_CHECK_HEADERS(utmp.h utmpx.h)
-AC_CHECK_FUNCS(setutent setutxent updwtmp updwtmpx logwtmp getutmp getutmpx)
+AC_CHECK_FUNCS(setutent setutxent setutsent updwtmp updwtmpx logwtmp getutmp getutmpx)
 AC_CHECK_FUNCS(utmpname utmpxname)
 
 AC_DEFUN(K5_CHECK_UT_MEMBER,
index 004582650a64da33354c116a558657f3802bef5b..d2de6428f6be7c1c6ca927b304e5b63f80452cfe 100644 (file)
  *
  * There is no wtmpx file, despite there being utmp and utmpx files.
  *
+ * HP-UX 11.23:
+ *
+ * In addition to other HP-UX issues, 11.23 includes yet another utmp
+ * management interface in utmps.h.  This interface updates a umtpd
+ * daemon which then manages local files.  Directly accessing the files
+ * through the existing, yet deprecated, utmp.h interface results in 
+ * nothing.
+ *
  * Irix 6.x:
  *
  * In utmpx, ut_exit contains __e_termination and __e_exit, which get
 /*
  * The following grossness exists to avoid duplicating lots of code
  * between the cases where we have an old-style sysV utmp and where we
- * have a modern (Unix98 or XPG4) utmpx.  See the above history rant
- * for further explanation.
+ * have a modern (Unix98 or XPG4) utmpx, or the new (hp-ux 11.23) utmps.  
+ * See the above history rant for further explanation.
  */
-#if defined(HAVE_SETUTXENT) || defined(HAVE_SETUTENT)
+#if defined(HAVE_SETUTXENT) || defined(HAVE_SETUTENT) || defined(HAVE_SETUTSENT)
+#ifdef HAVE_SETUTSENT
+#include <utmps.h>
+#define PTY_STRUCT_UTMPX struct utmps
+#define PTY_SETUTXENT setutsent
+#define PTY_GETUTXENT GETUTSENT
+#define PTY_GETUTXLINE GETUTSLINE
+#define PTY_PUTUTXLINE PUTUTSLINE
+#define PTY_ENDUTXENT endutsent
+#else
 #ifdef HAVE_SETUTXENT
 #define PTY_STRUCT_UTMPX struct utmpx
 #define PTY_SETUTXENT setutxent
 #define PTY_PUTUTXLINE pututline
 #define PTY_ENDUTXENT endutent
 #endif
-
+#endif
 static int better(const PTY_STRUCT_UTMPX *, const PTY_STRUCT_UTMPX *,
                  const PTY_STRUCT_UTMPX *);
 static int match_pid(const PTY_STRUCT_UTMPX *,