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
This commit is contained in:
parent
4ece29fe27
commit
b875818639
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user