chiark / gitweb /
logind: when changing linger stetings, make sure they take place immediately
authorLennart Poettering <lennart@poettering.net>
Tue, 28 Jun 2011 16:16:32 +0000 (18:16 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 28 Jun 2011 17:25:08 +0000 (19:25 +0200)
src/logind-dbus.c

index 320bb35efd48b38d88f07cb6e34a081859eed7db..af5176ca32bb6a1953be6fe2641ea9f18d96d6d0 100644 (file)
@@ -928,17 +928,29 @@ static DBusHandlerResult manager_message_handler(
                         goto oom;
 
                 if (b) {
+                        User *u;
+
                         r = touch(path);
                         free(path);
 
                         if (r < 0)
                                 return bus_send_error_reply(connection, message, &error, r);
+
+                        if (manager_add_user_by_uid(m, uid, &u) >= 0)
+                                user_start(u);
+
                 } else {
+                        User *u;
+
                         r = unlink(path);
                         free(path);
 
                         if (r < 0 && errno != ENOENT)
                                 return bus_send_error_reply(connection, message, &error, -errno);
+
+                        u = hashmap_get(m->users, ULONG_TO_PTR((unsigned long) uid));
+                        if (u)
+                                user_add_to_gc_queue(u);
                 }
 
                 reply = dbus_message_new_method_return(message);