From ecaabf1b6abe51487a1ac593ac229236fc07b914 Mon Sep 17 00:00:00 2001 From: andre Date: Mon, 12 Jun 2000 22:21:44 +0000 Subject: [PATCH] Fixed getlast_entry() so that it doesn't try to use utmp(x) if DISABLE_LASTLOG is defined. Bug reported by Tom Bertelson for AIX. --- loginrec.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/loginrec.c b/loginrec.c index 5951e0271..00136a952 100644 --- a/loginrec.c +++ b/loginrec.c @@ -170,7 +170,7 @@ #include "xmalloc.h" #include "loginrec.h" -RCSID("$Id: loginrec.c,v 1.4 2000/06/07 11:32:13 djm Exp $"); +RCSID("$Id: loginrec.c,v 1.5 2000/06/12 22:21:44 andre Exp $"); /** ** prototypes for helper functions in this file @@ -372,29 +372,40 @@ getlast_entry(struct logininfo *li) #else /* !USE_LASTLOG */ +# ifdef DISABLE_LASTLOG + /* On some systems we shouldn't even try to obtain last login + * time, e.g. AIX */ + return 0; + +# else /* Try to retrieve the last login time from wtmp */ -# if defined(USE_WTMP) && (defined(HAVE_TIME_IN_UTMP) || defined(HAVE_TV_IN_UTMP)) +# if defined(USE_WTMP) && (defined(HAVE_TIME_IN_UTMP) || defined(HAVE_TV_IN_UTMP)) /* retrieve last login time from utmp */ if (wtmp_get_entry(li)) return 1; else return 0; -# else +# else /* If wtmp isn't available, try wtmpx */ -# if defined(USE_WTMPX) && (defined(HAVE_TIME_IN_UTMPX) || defined(HAVE_TV_IN_UTMPX)) +# if defined(USE_WTMPX) && (defined(HAVE_TIME_IN_UTMPX) || defined(HAVE_TV_IN_UTMPX)) /* retrieve last login time from utmpx */ if (wtmpx_get_entry(li)) return 1; else return 0; -# else +# else /* Give up: No means of retrieving last login time */ return 0; +# endif + /* USE_WTMPX && (HAVE_TIME_IN_UTMPX || HAVE_TV_IN_UTMPX) */ + # endif + /* USE_WTMP && (HAVE_TIME_IN_UTMP || HAVE_TV_IN_UTMP) */ # endif + /* DISABLE_LASTLOG */ #endif /* USE_LASTLOG */ }