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=46dfba336aaa7317ba9824cbc230b20e71e0be6f;hb=e92787416c691c3f34f47349e5eae3fa68eae856;hpb=4927fcae48de061393b3ce9c12d49f80d73fbf1d diff --git a/src/utmp-wtmp.c b/src/utmp-wtmp.c index 46dfba336..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. @@ -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; }