summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-06-18 20:23:17 +0200
committerLennart Poettering <lennart@poettering.net>2010-06-18 20:23:17 +0200
commite4a9373fb3ddeadd6b847449186fadf5963695f7 (patch)
tree4f5dd7a030627d6b3b8126f4f52fd473b9701519
parent33be102a214e7010949496549f4c737b0f8269a3 (diff)
systemctl: when called as shutdown, properly handle user specified wall message
-rw-r--r--src/systemctl.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/systemctl.c b/src/systemctl.c
index 447a24458a..68e4a909eb 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -39,6 +39,7 @@
#include "utmp-wtmp.h"
#include "special.h"
#include "initreq.h"
+#include "strv.h"
static const char *arg_type = NULL;
static bool arg_all = false;
@@ -139,6 +140,23 @@ static void warn_wall(enum action action) {
if (arg_no_wall)
return;
+ if (arg_wall) {
+ char *p;
+
+ if (!(p = strv_join(arg_wall, " "))) {
+ log_error("Failed to join strings.");
+ return;
+ }
+
+ if (*p) {
+ utmp_wall(p);
+ free(p);
+ return;
+ }
+
+ free(p);
+ }
+
if (!table[action])
return;