From 7dfc7e96144150b0fa4f286d8d351ee96baf7db8 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 15 Jan 2014 14:33:38 +0200 Subject: [PATCH] emulator/bthost: Add basic support for link key requests --- emulator/bthost.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/emulator/bthost.c b/emulator/bthost.c index 2af5f7afe..1bdc1b2cc 100644 --- a/emulator/bthost.c +++ b/emulator/bthost.c @@ -556,6 +556,8 @@ static void evt_cmd_complete(struct bthost *bthost, const void *data, break; case BT_HCI_CMD_PIN_CODE_REQUEST_NEG_REPLY: break; + case BT_HCI_CMD_LINK_KEY_REQUEST_NEG_REPLY: + break; case BT_HCI_CMD_WRITE_SIMPLE_PAIRING_MODE: break; case BT_HCI_CMD_IO_CAPABILITY_REQUEST_REPLY: @@ -722,6 +724,22 @@ static void evt_pin_code_request(struct bthost *bthost, const void *data, } } +static void evt_link_key_request(struct bthost *bthost, const void *data, + uint8_t len) +{ + const struct bt_hci_evt_link_key_request *ev = data; + struct bt_hci_cmd_link_key_request_neg_reply cp; + + if (len < sizeof(*ev)) + return; + + memset(&cp, 0, sizeof(cp)); + memcpy(cp.bdaddr, ev->bdaddr, 6); + + send_command(bthost, BT_HCI_CMD_LINK_KEY_REQUEST_NEG_REPLY, + &cp, sizeof(cp)); +} + static void evt_link_key_notify(struct bthost *bthost, const void *data, uint8_t len) { @@ -902,6 +920,10 @@ static void process_evt(struct bthost *bthost, const void *data, uint16_t len) evt_pin_code_request(bthost, param, hdr->plen); break; + case BT_HCI_EVT_LINK_KEY_REQUEST: + evt_link_key_request(bthost, param, hdr->plen); + break; + case BT_HCI_EVT_LINK_KEY_NOTIFY: evt_link_key_notify(bthost, param, hdr->plen); break; -- 2.47.3