diff --git a/Makefile.tools b/Makefile.tools
index e1f693c..ec79cea 100644
--- a/Makefile.tools
+++ b/Makefile.tools
noinst_PROGRAMS += tools/btmgmt monitor/btmon emulator/btvirt emulator/b1ee
-tools_btmgmt_SOURCES = tools/btmgmt.c src/glib-helper.c
+tools_btmgmt_SOURCES = tools/btmgmt.c src/glib-helper.c src/eir.c
tools_btmgmt_LDADD = lib/libbluetooth-private.la @GLIB_LIBS@
monitor_btmon_SOURCES = monitor/main.c monitor/bt.h \
diff --git a/tools/btmgmt.c b/tools/btmgmt.c
index f06f0bf..2084b59 100644
--- a/tools/btmgmt.c
+++ b/tools/btmgmt.c
#include <glib.h>
#include "glib-helper.h"
+#include "eir.h"
static bool monitor = false;
static bool discovery = false;
{
uint32_t flags;
uint16_t eir_len;
+ struct eir_data eir;
if (len < sizeof(*ev)) {
fprintf(stderr,
return -EINVAL;
}
+ memset(&eir, 0, sizeof(eir));
+ eir_parse(&eir, ev->eir, eir_len);
+
if (monitor || discovery) {
char addr[18];
ba2str(&ev->addr.bdaddr, addr);
printf("hci%u dev_found: %s type %s rssi %d "
- "flags 0x%04x eir_len %u\n", index, addr,
- typestr(ev->addr.type), ev->rssi, flags, eir_len);
+ "flags 0x%04x ", index, addr,
+ typestr(ev->addr.type), ev->rssi, flags);
+
+ if (eir.name)
+ printf("name %s\n", eir.name);
+ else
+ printf("eir_len %u\n", eir_len);
}
+ eir_data_free(&eir);
+
if (discovery && (flags & MGMT_DEV_FOUND_CONFIRM_NAME)) {
struct mgmt_cp_confirm_name cp;