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 --- AUTHORS | 1 + ChangeLog | 9 +++++++++ bus/driver.c | 33 ++++++++++++++++++++++----------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/AUTHORS b/AUTHORS index 37be6343..329b8d02 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,6 +3,7 @@ Philip Blundell Anders Carlsson Kristian Hogsberg Alex Larsson +Robert McQueen Michael Meeks Seth Nickell John (J5) Palmieri diff --git a/ChangeLog b/ChangeLog index 0c6a8987..de9ec1a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-11-07 John (J5) Palmieri + + * 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 + 2005-11-07 Robert McQueen * python/decorators.py: Change emit_signal function to use the 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