summaryrefslogtreecommitdiff
path: root/src/login/elogind-dbus.c
diff options
context:
space:
mode:
authorSven Eden <yamakuzure@gmx.net>2018-01-14 18:07:25 +0100
committerSven Eden <yamakuzure@gmx.net>2018-01-14 18:07:25 +0100
commita1d9425d4be6f0b899ba2c49cfe604d741f4f836 (patch)
tree24d937192902ac2cd02a8a1f60eeff6107e4ee79 /src/login/elogind-dbus.c
parent5e714ac6ca27be76e670e185f71479beeb372f4b (diff)
Prep 235: Don't allow multiple jobs being executed at the same time
Diffstat (limited to 'src/login/elogind-dbus.c')
-rw-r--r--src/login/elogind-dbus.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/login/elogind-dbus.c b/src/login/elogind-dbus.c
index ede2bfd35..16b0b7939 100644
--- a/src/login/elogind-dbus.c
+++ b/src/login/elogind-dbus.c
@@ -434,9 +434,17 @@ int manager_scheduled_shutdown_handler(
else
action = HANDLE_REBOOT;
+ /* Don't allow multiple jobs being executed at the same time */
+ if (m->action_what) {
+ log_error("Scheduled shutdown to %s failed: shutdown or sleep operation already in progress",
+ m->scheduled_shutdown_type);
+ return -EALREADY;
+ }
+
r = execute_shutdown_or_sleep(m, 0, action, &error);
if (r < 0)
- return log_error_errno(r, "Unable to execute transition to %s: %m", m->scheduled_shutdown_type);
+ return log_error_errno(r, "Scheduled shutdown to %s failed: %m",
+ m->scheduled_shutdown_type);
return 0;
}