Commit Graph

41 Commits

Author SHA1 Message Date
ed
b875818639 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
2015-07-21 10:52:05 +00:00
ed
56b44313f3 Switch batch to an SLIST.
This code requires none of the features of LIST.
2012-09-12 22:16:31 +00:00
hrs
1736506e92 - Replace "wtmp" with "utx.log" because last(1) no longer reads wtmp.
- A real filename is now shown in an output report when "-f file" is specified.
- Add Xr lastlogin into last(1) manual page.

Reviewed by:	ed
MFC after:	1 week
2012-01-22 11:34:24 +00:00
ed
75cb563647 Add missing static keywords to last(1) 2011-11-06 08:15:41 +00:00
joel
29af67e52c Remove the advertising clause from UCB copyrighted files in usr.bin. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

Also add $FreeBSD$ to a few files to keep svn happy.

Discussed with:	imp, rwatson
2010-12-11 08:32:16 +00:00
ed
7848a5349f Make last(1) display the full log file.
I must have misread when I ported the original last(1) source code.
Instead of only processing the last 1024 entries, it reads them in in
chucks of 1024 entries at a time.

Unfortunately we cannot walk through the log file in reverse order,
which means we have to allocate a piece of memory to hold all the
entries. Call realloc() for each 128 entries we read.

Reported by:	Andrzej Tobola <ato iem pw edu pl>
2010-01-19 19:53:05 +00:00
ed
6d64011857 Port last(1) to use utmpx.
Basically there are three major things I changed about last(1):

- It should use ut_type instead of determining by hand what type of
  record was given.
- It should now keep track of ut_id's instead of TTYs. This means the
  ttylist has been renamed to the idlist, storing all the ut_id's it has
  processed until the next reboot.
- I've removed the signal handler. Because our wtmp is rotated so often,
  it makes little sense. Even on a simple piece of hardware it should be
  capable of grinding through megabytes of logs in a second.
2010-01-13 18:06:31 +00:00
dwmalone
c69fb8926e s/FALLTHOUGH/FALLTHROUGH/
Submitted by:	Xin LI <delphij@frontfree.net>
2004-08-08 18:59:19 +00:00
dwmalone
e6420ce89a Include timeconv.h for _int_to_time and _time_to_int. 2004-02-15 21:52:59 +00:00
tjr
9c51d70f9b Tidy up usage message. 2003-08-17 10:21:19 +00:00
tjr
5ba14c8397 Add the -n maxrec option as an alias for -maxrec for compatibility with
System V and consistency with other utilities. Document the new form
instead of the old form in the manual page.

PR:		54661
2003-07-27 10:53:28 +00:00
mux
75d56a025b Fix core dumps when invoking with something like ``last -w1''.
PR:		bin/44583
Reported by:	Amit Chakradeo <sdbug@spam.chakradeo.net>
MFC after:	3 days
2002-10-30 18:19:59 +00:00
dwmalone
b4339b74ad ANSIify function definitions.
Add some constness to avoid some warnings.
Remove use register keyword.
Deal with missing/unneeded extern/prototypes.
Some minor type changes/casts to avoid warnings.

Reviewed by:	md5
2002-09-04 23:29:10 +00:00
obrien
bc61fc95d8 Consistently use FBSDID 2002-06-30 05:25:07 +00:00
jmallett
0109c30545 Clean up malloc(3)'s argument. Remove casts which do nothing when we're
using sizeof() anyway.  Use slightly more consistent (per-file) error
reporting for malloc(3) returning NULL.  If "malloc failed" was being printed,
don't use err(3).  If a NULL format is being used, use err(3).  In one case
errx(3) was being used with strerror(3), so just use err(3).
2002-05-17 05:11:07 +00:00
imp
74d826c7a6 remove __P 2002-03-22 01:22:50 +00:00
iedowse
1090c48a39 Add a new "-y" flag which causes the year to be included in the
session start time. This is useful when looking at old or long-running
wtmp files.

PR:		bin/12982
Obtained from:	KOJIMA Hajime <kjm@rins.ryukoku.ac.jp>, keramida
Reviewed by:	keramida
MFC after:	1 week
2002-03-01 21:12:19 +00:00
iedowse
6c4b4530b4 Oops, unbreak the -d and -<n> options. The `snapfound' variable
needs to be retained across entries, and we need to exit(), not
return from doentry() when `maxrec' reaches 0. Move the code for
processing `maxrec' into printentry() for simplicity.
2002-03-01 19:46:20 +00:00
iedowse
a43d1708d7 Split up the big wtmp() function to avoid long lines and code
duplication.
2002-03-01 17:37:06 +00:00
dillon
c3dbbbabdf I've been meaning to do this for a while. Add an underscore to the
time_to_xxx() and xxx_to_time() functions.  e.g. _time_to_xxx()
instead of time_to_xxx(), to make it more obvious that these are
stopgap functions & placemarkers and not meant to create a defacto
standard.  They will eventually be replaced when a real standard
comes out of committee.
2002-01-19 23:20:02 +00:00
dillon
d9ab71bc3b localtime() was being called on an int pointer (due to recent
utmp-related commits).  fixed.
2001-10-29 00:34:20 +00:00
dd
e4d2dd216e Document -d in usage.
Submitted by:	Martin Kammerhofer <mkamm@sbox.tu-graz.ac.at>
2001-08-05 16:01:34 +00:00
dd
eaa2b71bee Silence warnings and minor style fixes. Mostly constify and don't
assume that time_t is a long.  Clamp down with WARNS=2.

Not objected to by:	-audit
2001-06-14 04:55:26 +00:00
ru
13b0e9b8e7 The last(1) choked if there were two successive "login" marks
found in wtmp(5) for the same TTY without in-between "logout"
mark.

This may be demonstrated by executing login(1), logging in and
out, and watching the last(1) output on this TTY:

: # last -tv7 -w
: ru      ttyv7              Mon May 28 12:46 - 12:46  (00:00:01)
: ru      ttyv7              Mon May 28 12:45   still logged in

The fix merely takes the second "login" mark as the "logout" for
the first "login" mark, if there were no "logout" mark in-between.
This restores the behavior of last.c,v 1.2:

: # last -tv7 -w
: ru      ttyv7              Mon May 28 12:46 - 12:46  (00:00:01)
: ru      ttyv7              Mon May 28 12:45 - 12:46  (00:00:25)

Silence from:	-arch, dg
2001-05-28 09:57:19 +00:00
dd
315d04216a Implement snapshots. The new -d option allows the user to find out
who was logged in at a certain time and date.

Obtained from:	OpenBSD
2001-05-28 01:22:37 +00:00
ache
f46163dd36 Don't attempt to parse %c 2001-03-21 19:08:01 +00:00
phk
a31c18820d Used macro-API to <sys/queue.h>.
Submitted by:	ben
2000-12-29 09:27:57 +00:00
imp
3c95f9ccde getopt and friends are declared in <unistd.h>
getopt returns -1 not EOF.
2000-09-04 06:09:54 +00:00
kris
805d9e79e2 Don't call printf with no format string. 2000-07-10 06:02:13 +00:00
jake
961b97d434 Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
jake
d93fbc9916 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
danny
f5105e25f5 Reviewed by: Peter Hawkins <thepish@FreeBSD.org>
Add s and w flags to show duration in or with seconds.
1998-05-28 00:58:29 +00:00
jb
41abcb86d3 Change variable from long to time_t where they are passed by reference
to time().
1998-05-15 12:28:43 +00:00
steve
a0bf7cf6b6 Add the year to the 'wtmp begins...' line.
PR:		6421
Submitted by:	phk
1998-05-03 23:19:15 +00:00
imp
141381e1cb compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
ache
f204d1bbee Remove one space to produce the same output alignment
like in who, rwho, w, etc.
1996-12-05 17:56:05 +00:00
joerg
2b0d357ce4 Don't dereference a free()ed pointer.
Closes PR bin/1909: 'last' coredumps if MALLOC_OPTIONS...
1996-10-28 07:47:34 +00:00
ache
8accda5bc3 Localize time 1996-06-17 16:44:16 +00:00
dg
fb897fab53 Fixed a bug that caused last(1) to be extremely slow in some cases, and
made other performance improving changes. This improves the performance
of last(1) by as much as 32 times in some cases, and in more typical cases
is about twice as fast.
Added a BUGS section to the manual page to describe the behavior of last(1)
when a login shell terminates abnormally (and thus doesn't write a logout
record to the wtmp file).
1995-10-17 18:26:43 +00:00
wollman
fc1f6c1d76 Delete bogus referneces to timezone code internal header file `tzfile.h',
which is no longer bogusly installed in /usr/include.
1995-08-07 19:17:46 +00:00
rgrimes
f9ab90d9d6 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00