From 7d103ce152956481dc68b5d35f1fef3b83305a64 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 4 Apr 2015 23:14:56 +0200 Subject: [PATCH] monitor: Add support for decoding the return link keys event --- monitor/bt.h | 4 ++++ monitor/packet.c | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/monitor/bt.h b/monitor/bt.h index 0d2a15a49..504041107 100644 --- a/monitor/bt.h +++ b/monitor/bt.h @@ -2224,6 +2224,10 @@ struct bt_hci_evt_mode_change { } __attribute__ ((packed)); #define BT_HCI_EVT_RETURN_LINK_KEYS 0x15 +struct bt_hci_evt_return_link_keys { + uint8_t num_keys; + uint8_t keys[0]; +} __attribute__ ((packed)); #define BT_HCI_EVT_PIN_CODE_REQUEST 0x16 struct bt_hci_evt_pin_code_request { diff --git a/monitor/packet.c b/monitor/packet.c index b2267a66d..a2beaacd8 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -7443,11 +7443,15 @@ static void mode_change_evt(const void *data, uint8_t size) static void return_link_keys_evt(const void *data, uint8_t size) { - uint8_t num_keys = *((uint8_t *) data); + const struct bt_hci_evt_return_link_keys *evt = data; + uint8_t i; - print_field("Num keys: %d", num_keys); + print_field("Num keys: %d", evt->num_keys); - packet_hexdump(data + 1, size - 1); + for (i = 0; i < evt->num_keys; i++) { + print_bdaddr(evt->keys + (i * 22)); + print_link_key(evt->keys + (i * 22) + 6); + } } static void pin_code_request_evt(const void *data, uint8_t size) -- 2.47.3