#include "fileio.h"
#include "sd-messages.h"
#include "strv.h"
+
+#if 0 /// elogind does this itself. No target table required
const char* manager_target_for_action(HandleAction handle) {
static const char * const target_table[_HANDLE_ACTION_MAX] = {
[HANDLE_POWEROFF] = SPECIAL_POWEROFF_TARGET,
return target_table[handle];
return NULL;
}
+#endif // 0
int manager_handle_action(
Manager *m,
[HANDLE_SUSPEND_THEN_HIBERNATE] = "Suspending, then hibernating...",
};
-#if 0 /// elogind does this itself. No target table required
-#endif // 0
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
InhibitWhat inhibit_operation;
Inhibitor *offending = NULL;
bool supported;
+#if 0 /// elogind uses its own variant, which can use the handle directly.
const char *target;
+#endif // 0
int r;
assert(m);
return -EALREADY;
}
+#if 0 /// elogind uses its own variant, which can use the handle directly.
assert_se(target = manager_target_for_action(handle));
+#endif // 0
inhibit_operation = IN_SET(handle, HANDLE_SUSPEND, HANDLE_HIBERNATE,
HANDLE_HYBRID_SLEEP,
const char* handle_action_to_string(HandleAction h) _const_;
HandleAction handle_action_from_string(const char *s) _pure_;
+#if 0 /// elogind does this itself. No target table required
const char* manager_target_for_action(HandleAction handle);
+#endif // 0
CONFIG_PARSER_PROTOTYPE(config_parse_handle_action);
blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL);
handle = handle_action_from_string(sleep_verb);
+#if 0 /// elogind uses its own variant, which can use the handle directly.
if (handle >= 0) {
const char *target;
target = manager_target_for_action(handle);
-#if 0 /// elogind does not support systemd units units. A valid handle is enough
if (target) {
_cleanup_free_ char *load_state = NULL;
return r;
if (!streq(load_state, "loaded")) {
-#else
- if (NULL == target) {
-#endif // 0
result = "no";
goto finish;
-#if 0 /// one less with elogind...
}
-#endif // 0
}
#else
if ( (handle <= HANDLE_IGNORE) || (handle >= _HANDLE_ACTION_MAX) ) {
result = "no";
goto finish;
}
+#endif // 0
if (multiple_sessions) {
r = bus_test_polkit(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, UID_INVALID, &challenge, error);