[systemd-commits] fixme src/cgroups-agent.c src/initctl.c src/systemctl.c src/update-utmp.c

Lennart Poettering lennart at kemper.freedesktop.org
Thu Sep 2 14:26:12 PDT 2010


 fixme               |    4 ----
 src/cgroups-agent.c |    1 +
 src/initctl.c       |    5 +++--
 src/systemctl.c     |    2 ++
 src/update-utmp.c   |    5 +++--
 5 files changed, 9 insertions(+), 8 deletions(-)

New commits:
commit 5d452f9ceceabf2bf69acb58e69a41fb41011e37
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Sep 2 23:26:04 2010 +0200

    dbus: make sure to flush bus connection before disconnecting, so that no messages are lost

diff --git a/fixme b/fixme
index c986d74..312e062 100644
--- a/fixme
+++ b/fixme
@@ -80,12 +80,8 @@ v9:
 
 * fix terminal setup
 
-* figure out ssh disconnect hang
-
 * home.mount failing should not be able to cancel umount.target (IgnoreDependencyFailure=yes borked?)
 
-* disallow further dbus+socket activation on shutdown
-
 External:
 
 * place /etc/inittab with explaining blurb.
diff --git a/src/cgroups-agent.c b/src/cgroups-agent.c
index 6f7a857..30aeede 100644
--- a/src/cgroups-agent.c
+++ b/src/cgroups-agent.c
@@ -82,6 +82,7 @@ int main(int argc, char *argv[]) {
 
 finish:
         if (bus) {
+                dbus_connection_flush(bus);
                 dbus_connection_close(bus);
                 dbus_connection_unref(bus);
         }
diff --git a/src/initctl.c b/src/initctl.c
index 6c3ec02..10db2dd 100644
--- a/src/initctl.c
+++ b/src/initctl.c
@@ -232,8 +232,9 @@ static void server_done(Server *s) {
                 close_nointr_nofail(s->epoll_fd);
 
         if (s->bus) {
-               dbus_connection_close(s->bus);
-               dbus_connection_unref(s->bus);
+                dbus_connection_flush(s->bus);
+                dbus_connection_close(s->bus);
+                dbus_connection_unref(s->bus);
         }
 }
 
diff --git a/src/systemctl.c b/src/systemctl.c
index ea09c3c..ecf3e01 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -4624,6 +4624,7 @@ finish:
                 dbus_message_unref(reply);
 
         if (bus) {
+                dbus_connection_flush(bus);
                 dbus_connection_close(bus);
                 dbus_connection_unref(bus);
         }
@@ -5039,6 +5040,7 @@ int main(int argc, char*argv[]) {
 finish:
 
         if (bus) {
+                dbus_connection_flush(bus);
                 dbus_connection_close(bus);
                 dbus_connection_unref(bus);
         }
diff --git a/src/update-utmp.c b/src/update-utmp.c
index e45bee1..b06f5a0 100644
--- a/src/update-utmp.c
+++ b/src/update-utmp.c
@@ -406,8 +406,9 @@ finish:
 #endif
 
         if (c.bus) {
-               dbus_connection_close(c.bus);
-               dbus_connection_unref(c.bus);
+                dbus_connection_flush(c.bus);
+                dbus_connection_close(c.bus);
+                dbus_connection_unref(c.bus);
         }
 
         dbus_error_free(&error);


More information about the systemd-commits mailing list