From 5a1e237266385fd62913f0a10fa6dae0f9129c87 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 1 Nov 2011 13:20:54 +0200 Subject: [PATCH] btmgmt: Add parsing of new_key events --- mgmt/main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mgmt/main.c b/mgmt/main.c index 0dbabab6d..72ee6a9a6 100644 --- a/mgmt/main.c +++ b/mgmt/main.c @@ -303,6 +303,24 @@ static int mgmt_setting(int mgmt_sk, uint16_t index, uint16_t op, return 0; } +static int mgmt_new_key(int mgmt_sk, uint16_t index, + struct mgmt_ev_new_key *ev, uint16_t len) +{ + char addr[18]; + + if (len != sizeof(*ev)) { + fprintf(stderr, "Invalid new_key event length (%u bytes)\n", + len); + return -EINVAL; + } + + ba2str(&ev->key.bdaddr, addr); + printf("hci%u new_key %s type 0x%02x pin_len %d store_hint %u\n", + index, addr, ev->key.type, ev->key.pin_len, ev->store_hint); + + return 0; +} + static int mgmt_handle_event(int mgmt_sk, uint16_t ev, uint16_t index, void *data, uint16_t len) { @@ -325,6 +343,8 @@ static int mgmt_handle_event(int mgmt_sk, uint16_t ev, uint16_t index, case MGMT_EV_CONNECTABLE: case MGMT_EV_PAIRABLE: return mgmt_setting(mgmt_sk, index, ev, data, len); + case MGMT_EV_NEW_KEY: + return mgmt_new_key(mgmt_sk, index, data, len); default: if (monitor) printf("Unhandled event 0x%04x (%s)\n", ev, mgmt_evstr(ev)); -- 2.47.3