summaryrefslogtreecommitdiffstats
path: root/bus/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/driver.c')
-rw-r--r--bus/driver.c33
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