diff options
Diffstat (limited to 'hcid')
-rw-r--r-- | hcid/dbus-manager.c | 8 | ||||
-rw-r--r-- | hcid/dbus-service.c | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/hcid/dbus-manager.c b/hcid/dbus-manager.c index d8c34348..3f6a0a4e 100644 --- a/hcid/dbus-manager.c +++ b/hcid/dbus-manager.c @@ -195,6 +195,7 @@ static DBusHandlerResult list_services(DBusConnection *conn, { DBusMessage *reply; DBusMessageIter iter; + DBusMessageIter array_iter; if (!dbus_message_has_signature(msg, DBUS_TYPE_INVALID_AS_STRING)) return error_invalid_arguments(conn, msg); @@ -204,7 +205,12 @@ static DBusHandlerResult list_services(DBusConnection *conn, return DBUS_HANDLER_RESULT_NEED_MEMORY; dbus_message_iter_init_append(reply, &iter); - append_available_services(&iter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + DBUS_TYPE_STRING_AS_STRING, &array_iter); + + append_available_services(&array_iter); + + dbus_message_iter_close_container(&iter, &array_iter); return send_message_and_unref(conn, reply); } diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c index a8c10560..be035081 100644 --- a/hcid/dbus-service.c +++ b/hcid/dbus-service.c @@ -401,14 +401,14 @@ int unregister_service_agent(DBusConnection *conn, const char *sender, const cha return 0; } -void append_available_services(DBusMessageIter *iter) +void append_available_services(DBusMessageIter *array_iter) { struct slist *l = services; const char *path; while (l) { path = l->data; - dbus_message_iter_append_basic(iter, - DBUS_TYPE_STRING, &path); + dbus_message_iter_append_basic(array_iter, + DBUS_TYPE_STRING, &path); l = l->next; } } |