diff options
author | Sven Eden <yamakuzure@gmx.net> | 2018-06-13 17:51:18 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-06-29 07:12:51 +0200 |
commit | b5802a1d75408cb8fc3e97f9194c5c31c915cfd8 (patch) | |
tree | d2ebfa487d91a55c6d138881ca28ce3a581680b6 /src/login/elogind-dbus.c | |
parent | 7e46f3ff9238635d6d7c9773c9cbaf6cb4035af9 (diff) |
Move method_do_shutdown_or_sleep() and its callers back to logind-sbus.c
Diffstat (limited to 'src/login/elogind-dbus.c')
-rw-r--r-- | src/login/elogind-dbus.c | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/src/login/elogind-dbus.c b/src/login/elogind-dbus.c index 28a9cd489..b1384874a 100644 --- a/src/login/elogind-dbus.c +++ b/src/login/elogind-dbus.c @@ -186,124 +186,6 @@ int execute_shutdown_or_sleep( return 0; } -static int method_do_shutdown_or_sleep( - Manager *m, - sd_bus_message *message, - HandleAction sleep_action, - InhibitWhat w, - const char *action, - const char *action_multiple_sessions, - const char *action_ignore_inhibit, - const char *sleep_verb, - sd_bus_error *error) { - - int interactive, r; - - assert(m); - assert(message); - assert(w >= 0); - assert(w <= _INHIBIT_WHAT_MAX); - - r = sd_bus_message_read(message, "b", &interactive); - if (r < 0) - return r; - - log_debug_elogind("%s called with action '%s', sleep '%s' (%sinteractive)", - __FUNCTION__, action, sleep_verb, - interactive ? "" : "NOT "); - - /* Don't allow multiple jobs being executed at the same time */ - if (m->action_what) - return sd_bus_error_setf(error, BUS_ERROR_OPERATION_IN_PROGRESS, "There's already a shutdown or sleep operation in progress"); - - if (sleep_verb) { - r = can_sleep(m, sleep_verb); - if (r < 0) - return r; - - if (r == 0) - return sd_bus_error_setf(error, BUS_ERROR_SLEEP_VERB_NOT_SUPPORTED, "Sleep verb not supported"); - } - - if (IN_SET(sleep_action, HANDLE_HALT, HANDLE_POWEROFF, HANDLE_REBOOT)) { - r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions, - action_ignore_inhibit, error); - log_debug_elogind("verify_shutdown_creds() returned %d", r); - if (r != 0) - return r; - } - - r = bus_manager_shutdown_or_sleep_now_or_later(m, sleep_action, w, error); - if (r < 0) - return r; - - return sd_bus_reply_method_return(message, NULL); -} - -int method_poweroff(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_POWEROFF, - INHIBIT_SHUTDOWN, - "org.freedesktop.login1.power-off", - "org.freedesktop.login1.power-off-multiple-sessions", - "org.freedesktop.login1.power-off-ignore-inhibit", - NULL, - error); -} - -int method_reboot(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_REBOOT, - INHIBIT_SHUTDOWN, - "org.freedesktop.login1.reboot", - "org.freedesktop.login1.reboot-multiple-sessions", - "org.freedesktop.login1.reboot-ignore-inhibit", - NULL, - error); -} - -int method_halt(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_HALT, - INHIBIT_SHUTDOWN, - "org.freedesktop.login1.halt", - "org.freedesktop.login1.halt-multiple-sessions", - "org.freedesktop.login1.halt-ignore-inhibit", - NULL, - error); -} - -int method_suspend(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_SUSPEND, - INHIBIT_SLEEP, - "org.freedesktop.login1.suspend", - "org.freedesktop.login1.suspend-multiple-sessions", - "org.freedesktop.login1.suspend-ignore-inhibit", - "suspend", - error); -} - int manager_scheduled_shutdown_handler( sd_event_source *s, uint64_t usec, @@ -360,35 +242,3 @@ error: reset_scheduled_shutdown(m); return r; } - -int method_hibernate(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_HIBERNATE, - INHIBIT_SLEEP, - "org.freedesktop.login1.hibernate", - "org.freedesktop.login1.hibernate-multiple-sessions", - "org.freedesktop.login1.hibernate-ignore-inhibit", - "hibernate", - error); -} - -int method_hybrid_sleep(sd_bus_message *message, void *userdata, sd_bus_error *error) { - Manager *m = userdata; - - log_debug_elogind("%s called", __FUNCTION__); - - return method_do_shutdown_or_sleep( - m, message, - HANDLE_HYBRID_SLEEP, - INHIBIT_SLEEP, - "org.freedesktop.login1.hibernate", - "org.freedesktop.login1.hibernate-multiple-sessions", - "org.freedesktop.login1.hibernate-ignore-inhibit", - "hybrid-sleep", - error); -} |