svn commit: r285742 - head/usr.bin/last
Ed Schouten
ed at FreeBSD.org
Tue Jul 21 10:52:07 UTC 2015
Author: ed
Date: Tue Jul 21 10:52:05 2015
New Revision: 285742
URL: https://svnweb.freebsd.org/changeset/base/285742
Log:
Unbreak "last reboot".
According to the last(1) man page, the "reboot" pseudo-user should print
all system reboot entries. This got broken by the utmpx import, as
records are typed.
Re-add support for "last reboot" by specifically matching against
SHUTDOWN_TIME and BOOT_TIME records.
PR: 168844
Submitted by: matthew@
MFC after: 1 month
Modified:
head/usr.bin/last/last.c
Modified: head/usr.bin/last/last.c
==============================================================================
--- head/usr.bin/last/last.c Tue Jul 21 09:57:13 2015 (r285741)
+++ head/usr.bin/last/last.c Tue Jul 21 10:52:05 2015 (r285742)
@@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$");
typedef struct arg {
char *name; /* argument */
+#define REBOOT_TYPE -1
#define HOST_TYPE -2
#define TTY_TYPE -3
#define USER_TYPE -4
@@ -180,6 +181,8 @@ main(int argc, char *argv[])
if (argc) {
setlinebuf(stdout);
for (argv += optind; *argv; ++argv) {
+ if (strcmp(*argv, "reboot") == 0)
+ addarg(REBOOT_TYPE, *argv);
#define COMPATIBILITY
#ifdef COMPATIBILITY
/* code to allow "last p5" to work */
@@ -389,6 +392,11 @@ want(struct utmpx *bp)
for (step = arglist; step; step = step->next)
switch(step->type) {
+ case REBOOT_TYPE:
+ if (bp->ut_type == BOOT_TIME ||
+ bp->ut_type == SHUTDOWN_TIME)
+ return (YES);
+ break;
case HOST_TYPE:
if (!strcasecmp(step->name, bp->ut_host))
return (YES);
More information about the svn-src-all
mailing list