diff options
author | andre <andre> | 2000-06-12 22:21:44 +0000 |
---|---|---|
committer | andre <andre> | 2000-06-12 22:21:44 +0000 |
commit | ecaabf1b6abe51487a1ac593ac229236fc07b914 (patch) | |
tree | 3c65e364bec1aaf42c42ae481b7f972fde914f8f /loginrec.c | |
parent | c29de955f4934441b3db9e31535d5e12c33e3d7d (diff) |
Fixed getlast_entry() so that it doesn't try to use utmp(x) if
DISABLE_LASTLOG is defined. Bug reported by Tom Bertelson
<tbert@abac.com> for AIX.
Diffstat (limited to 'loginrec.c')
-rw-r--r-- | loginrec.c | 21 |
1 files changed, 16 insertions, 5 deletions
@@ -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 */ } |