diff options
Diffstat (limited to 'bus/driver.c')
-rw-r--r-- | bus/driver.c | 33 |
1 files changed, 22 insertions, 11 deletions
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 |