From e093bea53fe586db6144c47a45be7f4ac6feb2ca Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Fri, 2 Apr 2010 11:05:59 +0000 Subject: Change how getent utmpx works. - Always require active, log or lastlogin to be provided. - Allow the user to provide custom filenames. --- getent.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/getent.c b/getent.c index e958665..0459cca 100644 --- a/getent.c +++ b/getent.c @@ -615,14 +615,13 @@ static int utmpx(int argc, char *argv[]) { const struct utmpx *ut; - int rv = RV_OK, db; + const char *file = NULL; + int rv = RV_OK, db = 0; assert(argc > 1); assert(argv != NULL); - if (argc == 2) { - db = UTXDB_ACTIVE; - } else if (argc == 3) { + if (argc == 3 || argc == 4) { if (strcmp(argv[2], "active") == 0) db = UTXDB_ACTIVE; else if (strcmp(argv[2], "lastlogin") == 0) @@ -631,15 +630,18 @@ utmpx(int argc, char *argv[]) db = UTXDB_LOG; else rv = RV_USAGE; + if (argc == 4) + file = argv[3]; } else { rv = RV_USAGE; } if (rv == RV_USAGE) { - fprintf(stderr, "Usage: %s utmpx [active | lastlogin | log]\n", + fprintf(stderr, + "Usage: %s utmpx active | lastlogin | log [filename]\n", getprogname()); } else if (rv == RV_OK) { - if (setutxdb(db, NULL) != 0) + if (setutxdb(db, file) != 0) return (RV_NOTFOUND); while ((ut = getutxent()) != NULL) utmpxprint(ut); -- cgit v1.2.3-56-ge451