X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-action.c;h=474b69628e991013c2761f1e4954ddd939691edc;hb=da4b83e77bc603745cf4a365d7f013301ef7fa89;hp=eba097c61dcb4f0f656a7b294bc4de73d3bc3ad8;hpb=e19b8719a54c343372e16b462c27f1e84c987b85;p=elogind.git diff --git a/src/login/logind-action.c b/src/login/logind-action.c index eba097c61..474b69628 100644 --- a/src/login/logind-action.c +++ b/src/login/logind-action.c @@ -21,19 +21,25 @@ #include -#include "sd-messages.h" -#include "util.h" -#include "strv.h" -#include "fileio.h" -#include "conf-parser.h" -// #include "special.h" -#include "sleep-config.h" +#include "alloc-util.h" #include "bus-error.h" #include "bus-util.h" +#include "conf-parser.h" +#include "formats-util.h" #include "logind-action.h" -// #include "formats-util.h" #include "process-util.h" +#include "sleep-config.h" +//#include "special.h" +#include "string-table.h" #include "terminal-util.h" +#include "user-util.h" + +// Additional includes needed by elogind +#include "fd-util.h" +#include "fileio.h" +#include "sd-messages.h" +#include "strv.h" + int manager_handle_action( Manager *m, @@ -154,7 +160,6 @@ int manager_handle_action( offending->uid, strna(u), offending->pid, strna(comm)); - warn_melody(); return -EPERM; } @@ -240,8 +245,7 @@ static int write_state(FILE **f, char **states) { return r; } -static int do_sleep(const char *arg_verb) { - _cleanup_strv_free_ char **modes = NULL, **states = NULL; +static int do_sleep(const char *arg_verb, char **modes, char **states) { char *arguments[] = { NULL, (char*) "pre", @@ -288,7 +292,10 @@ static int do_sleep(const char *arg_verb) { return r; } -int shutdown_or_sleep(HandleAction action) { +int shutdown_or_sleep(Manager *m, HandleAction action) { + + assert(m); + switch (action) { case HANDLE_POWEROFF: return run_helper(HALT); @@ -299,11 +306,11 @@ int shutdown_or_sleep(HandleAction action) { case HANDLE_KEXEC: return run_helper(KEXEC); case HANDLE_SUSPEND: - return do_sleep("suspend"); + return do_sleep("suspend", m->suspend_mode, m->suspend_state); case HANDLE_HIBERNATE: - return do_sleep("hibernate"); + return do_sleep("hibernate", m->hibernate_mode, m->hibernate_state); case HANDLE_HYBRID_SLEEP: - return do_sleep("hybrid-sleep"); + return do_sleep("hybrid-sleep", m->hybrid_sleep_mode, m->hybrid_sleep_state); default: return -EINVAL; }