diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-06-09 16:33:58 +0000 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-06-09 16:33:58 +0000 | 
| commit | 8ed3c68b9286a06881280e0c41bfe8e79fed369f (patch) | |
| tree | 4e3be96f38e9aa83c70886fe7fcfd3738a8a5691 | |
| parent | 6be25e8bc36656d6fd8ba61c8552f9596043eca6 (diff) | |
Use kernel auth requirement if available
| -rw-r--r-- | hcid/dbus-hci.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c index 01a37455..93a9db63 100644 --- a/hcid/dbus-hci.c +++ b/hcid/dbus-hci.c @@ -2469,7 +2469,7 @@ void hcid_dbus_pin_code_reply(bdaddr_t *local, void *ptr)  	}  } -static uint8_t get_auth_type(bdaddr_t *local, bdaddr_t *remote) +static uint8_t get_auth_requirement(bdaddr_t *local, bdaddr_t *remote)  {  	struct hci_auth_info_req req;  	char addr[18]; @@ -2513,7 +2513,7 @@ int hcid_dbus_get_io_cap(bdaddr_t *local, bdaddr_t *remote, uint8_t *cap,  		return -1;  	} -	type = get_auth_type(local, remote); +	type = get_auth_requirement(local, remote);  	debug("kernel authentication requirement = 0x%02x", type); @@ -2525,9 +2525,12 @@ int hcid_dbus_get_io_cap(bdaddr_t *local, bdaddr_t *remote, uint8_t *cap,  		*auth = 0x03;  	} else {  		agent = adapter->agent; -		*auth = 0x01; +		*auth = 0x00;  	} +	if (type != 0xff && type & 0x01) +		*auth |= 0x01; +  	if (!agent) {  		error("No agent available for IO capability");  		return -1; | 
