chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
logind: fix policykit checks
[elogind.git]
/
src
/
login
/
logind-dbus.c
diff --git
a/src/login/logind-dbus.c
b/src/login/logind-dbus.c
index fc8953155d56bcc2a41b2f48d62cd3d058e4c530..235b1313d470d3f19f7739a2c1cf35b5aaaf572b 100644
(file)
--- a/
src/login/logind-dbus.c
+++ b/
src/login/logind-dbus.c
@@
-1337,6
+1337,9
@@
static int execute_shutdown_or_sleep(
m->action_job = c;
m->action_what = w;
m->action_job = c;
m->action_what = w;
+ /* Make sure the lid switch is ignored for a while */
+ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC);
+
return 0;
}
return 0;
}
@@
-1477,6
+1480,8
@@
static int method_do_shutdown_or_sleep(
action_multiple_sessions, interactive, error, method, m);
if (r < 0)
return r;
action_multiple_sessions, interactive, error, method, m);
if (r < 0)
return r;
+ if (r == 0)
+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
if (blocked) {
}
if (blocked) {
@@
-1484,6
+1489,8
@@
static int method_do_shutdown_or_sleep(
action_ignore_inhibit, interactive, error, method, m);
if (r < 0)
return r;
action_ignore_inhibit, interactive, error, method, m);
if (r < 0)
return r;
+ if (r == 0)
+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
if (!multiple_sessions && !blocked) {
}
if (!multiple_sessions && !blocked) {
@@
-1491,6
+1498,8
@@
static int method_do_shutdown_or_sleep(
action, interactive, error, method, m);
if (r < 0)
return r;
action, interactive, error, method, m);
if (r < 0)
return r;
+ if (r == 0)
+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error);
}
r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error);