diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-07 17:53:50 +0000 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-07 17:53:50 +0000 | 
| commit | da0e7105811dc046d13d0365404efc1189ee4a8c (patch) | |
| tree | dffa4eee585192d1402a6427bb087a7263cc399c /hcid/adapter.c | |
| parent | c6638ee5c399991f1496b213de64529fcd8556eb (diff) | |
Registering device's object path
Diffstat (limited to 'hcid/adapter.c')
| -rw-r--r-- | hcid/adapter.c | 13 | 
1 files changed, 12 insertions, 1 deletions
| 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; | 
