vtnr = (uint32_t) v;
else if (vtnr != (uint32_t) v)
return -EINVAL;
+ } else if (tty_is_console(tty)) {
+
+ if (!s)
+ s = m->vtconsole;
+ else if (s != m->vtconsole)
+ return -EINVAL;
+
+ if (vtnr != 0)
+ return -EINVAL;
} else if (!isempty(tty) && s && seat_is_vtconsole(s))
return -EINVAL;
if (s) {
if (seat_can_multi_session(s)) {
- if (vtnr <= 0 || vtnr > 63)
+ if (vtnr > 63)
return -EINVAL;
} else {
- if (vtnr > 0)
+ if (vtnr != 0)
return -EINVAL;
}
}
return bus_send_error_reply(connection, message, &error, r);
multiple_sessions = r > 0;
- inhibit = !!(manager_inhibit_what(m) & INHIBIT_SHUTDOWN);
+ inhibit = manager_is_inhibited(m, INHIBIT_SHUTDOWN, NULL);
if (multiple_sessions) {
action = streq(dbus_message_get_member(message), "PowerOff") ?
return bus_send_error_reply(connection, message, &error, r);
multiple_sessions = r > 0;
- inhibit = !!(manager_inhibit_what(m) & INHIBIT_SHUTDOWN);
+ inhibit = manager_is_inhibited(m, INHIBIT_SHUTDOWN, NULL);
if (multiple_sessions) {
action = streq(dbus_message_get_member(message), "CanPowerOff") ?