summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandre <andre>2000-06-12 22:21:44 +0000
committerandre <andre>2000-06-12 22:21:44 +0000
commitecaabf1b6abe51487a1ac593ac229236fc07b914 (patch)
tree3c65e364bec1aaf42c42ae481b7f972fde914f8f
parentc29de955f4934441b3db9e31535d5e12c33e3d7d (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.
-rw-r--r--loginrec.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/loginrec.c b/loginrec.c
index 5951e027..00136a95 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 */
}