chiark / gitweb /
logind: make sure we hand out write fd, and keep read fd for session end detection
authorLennart Poettering <lennart@poettering.net>
Fri, 24 Jun 2011 18:40:00 +0000 (20:40 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 24 Jun 2011 18:40:00 +0000 (20:40 +0200)
TODO
src/dbus.c
src/logind-dbus.c

diff --git a/TODO b/TODO
index aab4431..d7c92e1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -80,6 +80,8 @@ Features:
 
 * avoid DefaultStandardOutput=syslog to have any effect on StandardInput=socket services
 
+* cgroup_notify_empty(): recursively check groups up the tree, too
+
 * fix alsa mixer restore to not print error when no config is stored
 
 * show enablement status in systemctl status
index 2a379a2..93a19a4 100644 (file)
@@ -446,7 +446,7 @@ static DBusHandlerResult system_bus_message_filter(DBusConnection *connection, D
                 if (!dbus_message_get_args(message, &error,
                                            DBUS_TYPE_STRING, &cgroup,
                                            DBUS_TYPE_INVALID))
-                        log_error("Failed to parse Released message: %s", error.message);
+                        log_error("Failed to parse Released message: %s", bus_error_message(&error));
                 else
                         cgroup_notify_empty(m, cgroup);
         }
index 10a826b..693906e 100644 (file)
@@ -382,8 +382,8 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
                 goto fail;
         }
 
-        session->pipe_fd = pipe_fds[1];
-        pipe_fds[1] = -1;
+        session->pipe_fd = pipe_fds[0];
+        pipe_fds[0] = -1;
 
         if (s) {
                 r = seat_attach_session(s, session);
@@ -412,7 +412,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
                         DBUS_TYPE_STRING, &session->id,
                         DBUS_TYPE_OBJECT_PATH, &p,
                         DBUS_TYPE_STRING, &session->user->runtime_path,
-                        DBUS_TYPE_UNIX_FD, &pipe_fds[0],
+                        DBUS_TYPE_UNIX_FD, &pipe_fds[1],
                         DBUS_TYPE_INVALID);
         free(p);
 
@@ -421,7 +421,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
                 goto fail;
         }
 
-        close_nointr_nofail(pipe_fds[0]);
+        close_nointr_nofail(pipe_fds[1]);
         *_reply = reply;
 
         return 0;