" <method name=\"CreateSession\">\n" \
" <arg name=\"uid\" type=\"u\" direction=\"in\"/>\n" \
" <arg name=\"leader\" type=\"u\" direction=\"in\"/>\n" \
- " <arg name=\"sevice\" type=\"s\" direction=\"in\"/>\n" \
+ " <arg name=\"service\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"type\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"class\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"seat\" type=\"s\" direction=\"in\"/>\n" \
if (r < 0)
return -EINVAL;
- if (strv_contains(controllers, "systemd") ||
- !dbus_message_iter_next(&iter) ||
+ if (!dbus_message_iter_next(&iter) ||
dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY ||
dbus_message_iter_get_element_type(&iter) != DBUS_TYPE_STRING) {
r = -EINVAL;
if (r < 0)
goto fail;
- if (strv_contains(reset_controllers, "systemd") ||
- !dbus_message_iter_next(&iter) ||
+ if (!dbus_message_iter_next(&iter) ||
dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_BOOLEAN) {
r = -EINVAL;
goto fail;
dbus_message_iter_get_basic(&iter, &kill_processes);
- r = cg_pid_get_cgroup(leader, NULL, &cgroup);
+ r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, leader, &cgroup);
if (r < 0)
goto fail;
session->type = t;
session->class = c;
session->remote = remote;
- session->controllers = controllers;
- session->reset_controllers = reset_controllers;
session->kill_processes = kill_processes;
session->vtnr = vtnr;
+ session->controllers = cg_shorten_controllers(controllers);
+ session->reset_controllers = cg_shorten_controllers(reset_controllers);
controllers = reset_controllers = NULL;
if (!isempty(tty)) {
static int attach_device(Manager *m, const char *seat, const char *sysfs) {
struct udev_device *d;
- char _cleanup_free_ *rule = NULL, *file = NULL;
+ _cleanup_free_ char *rule = NULL, *file = NULL;
const char *id_for_seat;
int r;
}
static int flush_devices(Manager *m) {
- DIR _cleanup_closedir_ *d;
+ _cleanup_closedir_ DIR *d;
assert(m);
DBusMessage **_reply) {
bool multiple_sessions, challenge, blocked, b;
- const char *result;
+ const char *result = NULL;
_cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
int r;
unsigned long ul;
log_error("Failed to parse JobRemoved message: %s", bus_error_message(&error));
else if (m->action_job && streq(m->action_job, path)) {
-
log_info("Operation finished.");
/* Tell people that they now may take a lock again */
assert(manager);
- if (!manager->action_unit || manager->action_job)
+ if (manager->action_what == 0 || manager->action_job)
return 0;
/* Continue delay? */
dbus_error_init(&error);
r = execute_shutdown_or_sleep(manager, manager->action_what, manager->action_unit, &error);
if (r < 0) {
- log_warning("Failed to send delayed message: %s", bus_error_message_or_strerror(&error, -r));
+ log_warning("Failed to send delayed message: %s", bus_error(&error, r));
dbus_error_free(&error);
manager->action_unit = NULL;