From 45ef0fbc4f0f5441425484be3662b2c44d2554b3 Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Mon, 7 Nov 2005 21:57:13 +0000 Subject: * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an empty reply so blocking calls don't block forever (Patch from Sjoerd Simons ) * AUTHORS: Add Robert McQueen for his work on the Python Bindings and other parts of D-Bus --- bus/driver.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'bus/driver.c') diff --git a/bus/driver.c b/bus/driver.c index 9e8df517..a6c4faff 100644 --- a/bus/driver.c +++ b/bus/driver.c @@ -1094,23 +1094,34 @@ bus_driver_handle_reload_config (DBusConnection *connection, DBusError *error) { BusContext *context; - dbus_bool_t retval; + DBusMessage *reply; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - retval = FALSE; - + reply = NULL; + context = bus_connection_get_context (connection); if (!bus_context_reload_config (context, error)) - { - _DBUS_ASSERT_ERROR_IS_SET (error); - goto out; - } + goto failed; - retval = TRUE; - - out: - return retval; + reply = dbus_message_new_method_return (message); + if (reply == NULL) + goto oom; + + if (! bus_transaction_send_from_driver (transaction, connection, reply)) + goto oom; + + dbus_message_unref (reply); + return TRUE; + + oom: + BUS_SET_OOM (error); + + failed: + _DBUS_ASSERT_ERROR_IS_SET (error); + if (reply) + dbus_message_unref (reply); + return FALSE; } /* For speed it might be useful to sort this in order of -- cgit