From: John (J5) Palmieri Date: Mon, 7 Nov 2005 21:57:13 +0000 (+0000) Subject: * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an X-Git-Tag: dbus-0.60~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45ef0fbc4f0f5441425484be3662b2c44d2554b3;p=thirdparty%2Fdbus.git * 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 --- diff --git a/AUTHORS b/AUTHORS index 37be63435..329b8d02d 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 0c6a89875..de9ec1a80 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 9e8df5179..a6c4faff1 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