chiark / gitweb /
nspawn: fix getent fallback
[elogind.git] / src / login / logind-dbus.c
index fc8953155d56bcc2a41b2f48d62cd3d058e4c530..235b1313d470d3f19f7739a2c1cf35b5aaaf572b 100644 (file)
@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep(
         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;
 }
 
@@ -1477,6 +1480,8 @@ static int method_do_shutdown_or_sleep(
                                             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) {
@@ -1484,6 +1489,8 @@ static int method_do_shutdown_or_sleep(
                                             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) {
@@ -1491,6 +1498,8 @@ static int method_do_shutdown_or_sleep(
                                             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);