chiark / gitweb /
dbus: make sure to flush bus connection before disconnecting, so that no messages...
authorLennart Poettering <lennart@poettering.net>
Thu, 2 Sep 2010 21:26:04 +0000 (23:26 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 2 Sep 2010 21:26:04 +0000 (23:26 +0200)
fixme
src/cgroups-agent.c
src/initctl.c
src/systemctl.c
src/update-utmp.c

diff --git a/fixme b/fixme
index c986d74a9a416c87dc73bd7640aaad8bd6a93ea5..312e06212113ef288f597280e34e42d0eda31e27 100644 (file)
--- 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.
index 6f7a857eaf9a74fa791d6a4ff6e3080a0b775da9..30aeede943d553491422fadaed7752d755209b95 100644 (file)
@@ -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);
         }
index 6c3ec0264780a16b8184cfbe95b8ba424a84c818..10db2dda188e95eae7d6ae814a0ea8c35fb95381 100644 (file)
@@ -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);
         }
 }
 
index ea09c3cf36df25bcc6e17ef98a20d575654bcf36..ecf3e013f2add664fcb4848d6a8904a8ee28a785 100644 (file)
@@ -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);
         }
index e45bee10ceee237699c3b707d8d4271da5398075..b06f5a06cb6be57a19de2838a6bc4cbb480c8836 100644 (file)
@@ -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);