diff options
Diffstat (limited to 'hcid/dbus-adapter.c')
| -rw-r--r-- | hcid/dbus-adapter.c | 23 | 
1 files changed, 11 insertions, 12 deletions
diff --git a/hcid/dbus-adapter.c b/hcid/dbus-adapter.c index 36c47e0b..551586ed 100644 --- a/hcid/dbus-adapter.c +++ b/hcid/dbus-adapter.c @@ -1081,7 +1081,7 @@ static DBusHandlerResult handle_dev_create_bonding_req(DBusConnection *conn, DBu  		return error_bonding_in_progress(conn, msg);  	ecode = get_device_address(dbus_data->dev_id, local_addr, sizeof(local_addr)); -	if (ecode < 0) /* FIXME: remove the peer bdaddr from the list */ +	if (ecode < 0)  		return error_failed(conn, msg, -ecode);  	/* check if a link key already exists */ @@ -1105,10 +1105,6 @@ static DBusHandlerResult handle_dev_create_bonding_req(DBusConnection *conn, DBu  	if (dd < 0)  		return error_no_such_adapter(conn, msg); -	/* check if there is an active connection */ -	//dev_id = hci_for_each_dev(HCI_UP, find_conn, (long) &peer_bdaddr); -	handle = find_connection_handle(dd, &peer_bdaddr); -  	memset(&rq, 0, sizeof(rq));  	memset(&rp, 0, sizeof(rp)); @@ -1117,6 +1113,9 @@ static DBusHandlerResult handle_dev_create_bonding_req(DBusConnection *conn, DBu  	rq.rparam = &rp;  	rq.rlen = EVT_CMD_STATUS_SIZE; +	/* check if there is an active connection */ +	handle = find_connection_handle(dd, &peer_bdaddr); +  	if (handle < 0 ) {  		create_conn_cp cp; @@ -1125,14 +1124,14 @@ static DBusHandlerResult handle_dev_create_bonding_req(DBusConnection *conn, DBu  		bonding_state = CONNECTING;  		bacpy(&cp.bdaddr, &peer_bdaddr); -		cp.pkt_type = htobs(HCI_DM1 | HCI_DM3 | HCI_DM5 | HCI_DH1 | HCI_DH3 | HCI_DH5); +		cp.pkt_type       = htobs(HCI_DM1 | HCI_DM3 | HCI_DM5 | HCI_DH1 | HCI_DH3 | HCI_DH5);  		cp.pscan_rep_mode = 0x02; -		cp.clock_offset = htobs(0x0000); -		cp.role_switch = 0x01; +		cp.clock_offset	  = htobs(0x0000); +		cp.role_switch    = 0x01; -		rq.ocf = OCF_CREATE_CONN; +		rq.ocf    = OCF_CREATE_CONN;  		rq.cparam = &cp; -		rq.clen = CREATE_CONN_CP_SIZE; +		rq.clen   = CREATE_CONN_CP_SIZE;  	} else {  		/* connection found */  		auth_requested_cp cp; @@ -1526,7 +1525,7 @@ static DBusHandlerResult handle_dev_cancel_discovery_req(DBusConnection *conn, D  		break;  	} -	slist_foreach(dbus_data->discovered_devices, discovered_device_free, NULL); +	slist_foreach(dbus_data->discovered_devices, discovered_device_info_free, NULL);  	slist_free(dbus_data->discovered_devices);  	dbus_data->discovered_devices = NULL; @@ -1591,7 +1590,7 @@ static struct service_data dev_services[] = {  	{ "GetEncryptionKeySize",			handle_dev_get_encryption_key_size_req,	},  	{ "DiscoverDevices",				handle_dev_discover_devices_req,	}, -	{ "DiscoverDevicesWithoutNameResolving",	handle_dev_discover_devices_req	}, +	{ "DiscoverDevicesWithoutNameResolving",	handle_dev_discover_devices_req		},  	{ "CancelDiscovery",				handle_dev_cancel_discovery_req,	},  	{ NULL, NULL }  | 
