svn commit: r206087 - head/usr.bin/getent

Ed Schouten ed at FreeBSD.org
Fri Apr 2 11:05:59 UTC 2010


Author: ed
Date: Fri Apr  2 11:05:59 2010
New Revision: 206087
URL: http://svn.freebsd.org/changeset/base/206087

Log:
  Change how getent utmpx works.
  
  - Always require active, log or lastlogin to be provided.
  - Allow the user to provide custom filenames.

Modified:
  head/usr.bin/getent/getent.c

Modified: head/usr.bin/getent/getent.c
==============================================================================
--- head/usr.bin/getent/getent.c	Fri Apr  2 10:36:40 2010	(r206086)
+++ head/usr.bin/getent/getent.c	Fri Apr  2 11:05:59 2010	(r206087)
@@ -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);


More information about the svn-src-all mailing list