summaryrefslogtreecommitdiffstats
path: root/bus/connection.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-03-15 02:19:02 +0000
committerHavoc Pennington <hp@redhat.com>2003-03-15 02:19:02 +0000
commit4c95a9782c65f88e2904c44abeb734a1b00f6353 (patch)
treed81b0c3a3497a031cb642dc5126750a36a6651ff /bus/connection.c
parentf468907fb09e8198c4cce7e8f2ddeae8b5476b9e (diff)
2003-03-14 Havoc Pennington <hp@redhat.com>
* dbus/dbus-memory.c: add a "detect buffer overwrites on free" cheesy hack * dbus/dbus-transport-debug.c: rework this a good bit to be less complicated. hopefully still works. * dbus/dbus-server-debug.c (handle_new_client): remove timeout manually * glib/dbus-gmain.c (timeout_handler): don't remove timeout after running it * dbus/dbus-message.c (dbus_message_copy): rename from dbus_message_new_from_message, fix it up to copy all the message fields, add test case * bus/dispatch.c (bus_dispatch_test): add some more test code, not quite passing yet
Diffstat (limited to 'bus/connection.c')
-rw-r--r--bus/connection.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/bus/connection.c b/bus/connection.c
index f0463392..700ca46d 100644
--- a/bus/connection.c
+++ b/bus/connection.c
@@ -143,7 +143,8 @@ connection_watch_callback (DBusWatch *watch,
dbus_connection_handle_watch (connection, watch, condition);
- while (dbus_connection_dispatch_message (connection));
+ while (dbus_connection_dispatch_message (connection))
+ ;
dbus_connection_unref (connection);
}
@@ -166,7 +167,15 @@ static void
connection_timeout_callback (DBusTimeout *timeout,
void *data)
{
+ DBusConnection *connection = data;
+
+ dbus_connection_ref (connection);
+
dbus_timeout_handle (timeout);
+
+ while (dbus_connection_dispatch_message (connection))
+ ;
+ dbus_connection_unref (connection);
}
static dbus_bool_t