chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop sessions on ReleaseSession
[elogind.git]
/
src
/
login
/
logind-action.c
diff --git
a/src/login/logind-action.c
b/src/login/logind-action.c
index eba097c61dcb4f0f656a7b294bc4de73d3bc3ad8..5406cd45bd8b1fc17e7303cd36418997e3eaa2aa 100644
(file)
--- a/
src/login/logind-action.c
+++ b/
src/login/logind-action.c
@@
-240,8
+240,7
@@
static int write_state(FILE **f, char **states) {
return r;
}
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",
char *arguments[] = {
NULL,
(char*) "pre",
@@
-288,7
+287,10
@@
static int do_sleep(const char *arg_verb) {
return r;
}
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);
switch (action) {
case HANDLE_POWEROFF:
return run_helper(HALT);
@@
-299,11
+301,11
@@
int shutdown_or_sleep(HandleAction action) {
case HANDLE_KEXEC:
return run_helper(KEXEC);
case HANDLE_SUSPEND:
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:
case HANDLE_HIBERNATE:
- return do_sleep("hibernate");
+ return do_sleep("hibernate"
, m->hibernate_mode, m->hibernate_state
);
case HANDLE_HYBRID_SLEEP:
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;
}
default:
return -EINVAL;
}