assert(message);
- r = mac_selinux_access_check(message, "reboot", error);
- if (r < 0)
- return r;
-
if (!MANAGER_IS_SYSTEM(m))
return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
"Reboot is only supported by system manager.");
+ r = mac_selinux_access_check(message, "reboot", error);
+ if (r < 0)
+ return r;
+
m->objective = MANAGER_REBOOT;
return sd_bus_reply_method_return(message, NULL);
assert(message);
- r = mac_selinux_access_check(message, "halt", error);
- if (r < 0)
- return r;
-
if (!MANAGER_IS_SYSTEM(m))
return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
"Powering off is only supported by system manager.");
+ r = mac_selinux_access_check(message, "halt", error);
+ if (r < 0)
+ return r;
+
m->objective = MANAGER_POWEROFF;
return sd_bus_reply_method_return(message, NULL);
assert(message);
- r = mac_selinux_access_check(message, "halt", error);
- if (r < 0)
- return r;
-
if (!MANAGER_IS_SYSTEM(m))
return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
"Halt is only supported by system manager.");
+ r = mac_selinux_access_check(message, "halt", error);
+ if (r < 0)
+ return r;
+
m->objective = MANAGER_HALT;
return sd_bus_reply_method_return(message, NULL);
assert(message);
- r = mac_selinux_access_check(message, "reboot", error);
- if (r < 0)
- return r;
-
if (!MANAGER_IS_SYSTEM(m))
return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
"KExec is only supported by system manager.");
+ r = mac_selinux_access_check(message, "reboot", error);
+ if (r < 0)
+ return r;
+
m->objective = MANAGER_KEXEC;
return sd_bus_reply_method_return(message, NULL);
assert(message);
+ if (!MANAGER_IS_SYSTEM(m))
+ return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
+ "Root switching is only supported by system manager.");
+
r = verify_run_space_permissive("root switching may fail", error);
if (r < 0)
return r;
if (r < 0)
return r;
- if (!MANAGER_IS_SYSTEM(m))
- return sd_bus_error_set(error, SD_BUS_ERROR_NOT_SUPPORTED,
- "Root switching is only supported by system manager.");
-
r = sd_bus_message_read(message, "ss", &root, &init);
if (r < 0)
return r;