diff options
author | Ed Schouten <ed@FreeBSD.org> | 2010-04-02 11:05:59 +0000 |
---|---|---|
committer | Ed Schouten <ed@FreeBSD.org> | 2010-04-02 11:05:59 +0000 |
commit | e093bea53fe586db6144c47a45be7f4ac6feb2ca (patch) | |
tree | 94d58f5426bd66916269169f732de3f0559e026a | |
parent | d13a87ba80ee095bcbd5f2d5e056bb4b56ac63e9 (diff) | |
download | getent-darwin-e093bea53fe586db6144c47a45be7f4ac6feb2ca.tar.gz getent-darwin-e093bea53fe586db6144c47a45be7f4ac6feb2ca.tar.zst getent-darwin-e093bea53fe586db6144c47a45be7f4ac6feb2ca.zip |
Change how getent utmpx works.
- Always require active, log or lastlogin to be provided.
- Allow the user to provide custom filenames.
-rw-r--r-- | getent.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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); |