From da0e7105811dc046d13d0365404efc1189ee4a8c Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Fri, 7 Mar 2008 17:53:50 +0000 Subject: Registering device's object path --- hcid/adapter.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'hcid/adapter.c') diff --git a/hcid/adapter.c b/hcid/adapter.c index e58cb87a..31eb8309 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -3180,6 +3180,7 @@ static void discover_services_cb(gpointer user_data, sdp_list_t *recs, int err) { struct adapter *adapter = user_data; DBusMessage *reply; + const char *path; if (err < 0) { error_connection_attempt_failed(adapter->create->conn, @@ -3187,11 +3188,20 @@ static void discover_services_cb(gpointer user_data, sdp_list_t *recs, int err) goto failed; } - /* FIXME: Register the device object path */ + path = device_create(adapter, adapter->create->address, recs); + if (!path) + goto failed; reply = dbus_message_new_method_return(adapter->create->msg); + if (!reply) + goto failed; + + dbus_message_append_args(reply, DBUS_TYPE_STRING, &path, + DBUS_TYPE_INVALID); send_message_and_unref(adapter->create->conn, reply); + adapter->devices = g_slist_append(adapter->devices, g_strdup(path)); + failed: dbus_connection_unref(adapter->create->conn); dbus_message_unref(adapter->create->msg); @@ -3233,6 +3243,7 @@ static DBusHandlerResult create_device(DBusConnection *conn, create = g_malloc0(sizeof(struct create_device_req)); create->conn = dbus_connection_ref(conn); create->msg = dbus_message_ref(msg); + strcpy(create->address, address); adapter->create = create; return DBUS_HANDLER_RESULT_HANDLED; -- cgit