From 2b35d9555024ef4b92d51358c20bb972bb29bb12 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 3 Jan 2014 22:53:02 -0800 Subject: [PATCH] monitor: Handle multipe event types in a single advertising report --- monitor/packet.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/monitor/packet.c b/monitor/packet.c index b271caeab..8b298d3e2 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -6976,6 +6976,7 @@ static void le_adv_report_evt(const void *data, uint8_t size) print_num_reports(evt->num_reports); +report: switch (evt->event_type) { case 0x00: str = "Connectable undirected - ADV_IND"; @@ -7008,8 +7009,12 @@ static void le_adv_report_evt(const void *data, uint8_t size) evt_len = sizeof(*evt) + evt->data_len + 1; - if (size > evt_len) - packet_hexdump(data + evt_len, size - evt_len); + if (size > evt_len) { + data += evt_len - 1; + size -= evt_len - 1; + evt = data; + goto report; + } } static void le_conn_update_complete_evt(const void *data, uint8_t size) -- 2.47.3