]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: use action_table for scheduling shutdown 22522/head
authorLudwig Nussel <ludwig.nussel@suse.de>
Tue, 8 Feb 2022 10:23:04 +0000 (11:23 +0100)
committerLudwig Nussel <ludwig.nussel@suse.de>
Mon, 28 Feb 2022 10:29:45 +0000 (11:29 +0100)
The fall-through to reboot doesn't seem to make sense. It won't happen
in the current code. Filtering the actions on client side is not needed
either as the server will refuse unsupported operations anyway.

src/systemctl/systemctl-logind.c

index d502a7edcf716b63f9b73fa2e228038e593b1da2..897d936abaad899bc3fac07b6f723cf1b99bb849 100644 (file)
@@ -304,24 +304,9 @@ int logind_schedule_shutdown(void) {
         if (r < 0)
                 return r;
 
-        switch (arg_action) {
-        case ACTION_HALT:
-                action = "halt";
-                break;
-        case ACTION_POWEROFF:
-                action = "poweroff";
-                break;
-        case ACTION_KEXEC:
-                action = "kexec";
-                break;
-        case ACTION_EXIT:
-                action = "exit";
-                break;
-        case ACTION_REBOOT:
-        default:
-                action = "reboot";
-                break;
-        }
+        action = action_table[arg_action].verb;
+        if (!action)
+                return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Scheduling not supported for this action.");
 
         if (arg_dry_run)
                 action = strjoina("dry-", action);