X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Futmp-wtmp.c;h=77baaffacfdec7cc3a49f519bf69731664f61e24;hp=45da79c681c8e3d92bf1abf2db75630593462ae6;hb=e92787416c691c3f34f47349e5eae3fa68eae856;hpb=8c6db8336536916d0476ff8233e0abf40a2f6aab diff --git a/src/utmp-wtmp.c b/src/utmp-wtmp.c index 45da79c68..77baaffac 100644 --- a/src/utmp-wtmp.c +++ b/src/utmp-wtmp.c @@ -1,4 +1,4 @@ -/*-*- Mode: C; c-basic-offset: 8 -*-*/ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*** This file is part of systemd. @@ -202,11 +202,11 @@ int utmp_put_runlevel(usec_t t, int runlevel, int previous) { previous = 0; } - - if (previous == runlevel) - return 0; } + if (previous == runlevel) + return 0; + init_entry(&store, t); store.ut_type = RUN_LVL; @@ -290,10 +290,9 @@ finish: int utmp_wall(const char *message) { struct utmpx *u; - char date[26]; + char date[FORMAT_TIMESTAMP_MAX]; char *text = NULL, *hn = NULL, *un = NULL, *tty = NULL; int r; - time_t t; if (!(hn = gethostname_malloc()) || !(un = getlogname_malloc())) { @@ -301,18 +300,16 @@ int utmp_wall(const char *message) { goto finish; } - if ((r = getttyname_malloc(&tty)) < 0) - goto finish; - - time(&t); - assert_se(ctime_r(&t, date)); - delete_chars(date, "\n\r"); + getttyname_malloc(&tty); if (asprintf(&text, "\a\r\n" - "Broadcast message from %s@%s on %s (%s):\r\n\r\n" + "Broadcast message from %s@%s%s%s (%s):\r\n\r\n" "%s\r\n\r\n", - un, hn, tty, date, message) < 0) { + un, hn, + tty ? " on " : "", strempty(tty), + format_timestamp(date, sizeof(date), now(CLOCK_REALTIME)), + message) < 0) { r = -ENOMEM; goto finish; }