|
From: Anders J. <and...@us...> - 2003-11-12 10:15:28
|
The following files were modified in linux/drivers/char/bluetooth:
Name Old version New version Tag Comment
---- ----------- ----------- --- -------
bluetooth.c 1.243 1.244=20=20=20=20=20=20=20=20=20=20=20=20=20
hci.c 1.212 1.213=20=20=20=20=20=20=20=20=20=20=20=20=20
sec_client.c 1.28 1.29=20=20=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Added block-option to write_link_key.=20
The diff of the modified file(s):
--- bluetooth.c 2003/11/06 19:12:52 1.243
+++ bluetooth.c 2003/11/12 10:15:05 1.244
@@ -1099,7 +1099,7 @@ hci_inq_exit0:
BT_DRIVER(__FUNCTION__ ": HCIWRITESTOREDLINKKEY\n");
copy_from_user(param, (s32*)arg, size);
=20
- result =3D hci_write_stored_link_key(param, param + 6);
+ result =3D hci_write_stored_link_key(param, param + 6, 1);
put_user(result, (s32*)arg);
break;
}
--- hci.c 2003/11/06 19:12:52 1.212
+++ hci.c 2003/11/12 10:15:05 1.213
@@ -1198,7 +1198,7 @@ process_event(u8 *buf, u32 len, u32 even
break;
=20
case LINK_KEY_NOTIFICATION:
- D_CMD(__FUNCTION__ ": LINK_KEY_NOTIFICATION forwarding event to security=
manager\n");
+ D_CMD(__FUNCTION__ ": LINK_KEY_NOTIFICATION (Keytype %02x) forwarding ev=
ent to security manager\n", buf[22]);
#ifdef CONFIG_BLUETOOTH_USE_SECURITY_MANAGER
sec_man_event(HCI, buf, LINK_KEY_NOTIFICATION, buf + 6, 16);
#endif
@@ -2695,7 +2695,7 @@ hci_read_stored_link_key(u8 *bd, u8 flag
}
=20
s32
-hci_write_stored_link_key(u8 *bd, u8* link_key)
+hci_write_stored_link_key(u8 *bd, u8* link_key, s32 block)
{
s32 tmp;
D_CMD(__FUNCTION__ "\n");
@@ -2708,11 +2708,15 @@ hci_write_stored_link_key(u8 *bd, u8* li
memcpy(c_pkt.data + 7, link_key, 16);
c_pkt.len =3D 23;
=20
+ if(block) {
tmp =3D send_cmd_block((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N, DEFAULT_TIMEOUT);
if (tmp < 0) {
return tmp;
} else {
return result_param;
+ }
+ } else {
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LEN);
}
}
=20
--- sec_client.c 2003/11/05 15:21:59 1.28
+++ sec_client.c 2003/11/12 10:15:05 1.29
@@ -609,6 +609,10 @@ sec_man_event(enum security_requests use
case LINK_KEY_REQUEST:
hci_link_key_request_negative_reply(bd_addr, 0);
break;
+
+ case LINK_KEY_NOTIFICATION:
+ hci_write_stored_link_key(bd_addr, param, 0);
+ break;
default:
printk("Received event %d, no action\n", event);
}
|