diff options
Diffstat (limited to 'src/shutdownd.c')
-rw-r--r-- | src/shutdownd.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/shutdownd.c b/src/shutdownd.c index 7f5e66dbec..d889824536 100644 --- a/src/shutdownd.c +++ b/src/shutdownd.c @@ -107,15 +107,10 @@ static void warn_wall(struct shutdownd_command *c) { if (c->wall_message[0]) utmp_wall(c->wall_message); else { - time_t s; - char buf[27]; + char date[FORMAT_TIMESTAMP_MAX]; const char* prefix; char *l; - s = c->elapse / USEC_PER_SEC; - ctime_r(&s, buf); - - if (c->mode == 'H') prefix = "The system is going down for system halt at"; else if (c->mode == 'P') @@ -125,7 +120,9 @@ static void warn_wall(struct shutdownd_command *c) { else assert_not_reached("Unknown mode!"); - if (asprintf(&l, "%s %s!", prefix, strstrip(buf)) < 0) + if (asprintf(&l, "%s %s!", + prefix, + format_timestamp(date, sizeof(date), c->elapse)) < 0) log_error("Failed to allocate wall message"); else { utmp_wall(l); @@ -260,8 +257,7 @@ int main(int argc, char *argv[]) { goto finish; else if (k > 0 && c.elapse > 0) { struct itimerspec its; - char buf[27]; - + char date[FORMAT_TIMESTAMP_MAX]; if (c.warn_wall) { /* Send wall messages every so often */ @@ -294,11 +290,9 @@ int main(int argc, char *argv[]) { goto finish; } - ctime_r(&its.it_value.tv_sec, buf); - sd_notifyf(false, "STATUS=Shutting down at %s...", - strstrip(buf)); + format_timestamp(date, sizeof(date), c.elapse)); } } |