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