From f52cc3072cf8c38550164496ad7e8106888b4bd9 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Fri, 30 Dec 2011 15:30:26 +0200 Subject: [PATCH] eir: Add function to check for complete name --- src/eir.c | 25 +++++++++++++++++++++++++ src/eir.h | 2 ++ 2 files changed, 27 insertions(+) diff --git a/src/eir.c b/src/eir.c index 5e0e96a99..e4554e8b9 100644 --- a/src/eir.c +++ b/src/eir.c @@ -333,3 +333,28 @@ void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor, if (eir_len <= HCI_MAX_EIR_LENGTH - 2) eir_generate_uuid128(uuids, ptr, &eir_len); } + +gboolean eir_has_complete_name(uint8_t *data, size_t len) +{ + uint8_t field_len; + size_t parsed; + + for (parsed = 0; parsed < len - 1; parsed += field_len) { + field_len = data[0]; + + if (field_len == 0) + break; + + parsed += field_len + 1; + + if (parsed > len) + break; + + if (data[1] == EIR_NAME_COMPLETE) + return TRUE; + + data += field_len + 1; + } + + return FALSE; +} diff --git a/src/eir.h b/src/eir.h index 88427909e..47c2258c0 100644 --- a/src/eir.h +++ b/src/eir.h @@ -39,3 +39,5 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data, uint8_t eir_len); void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor, uint16_t did_product, uint16_t did_version, GSList *uuids, uint8_t *data); + +gboolean eir_has_complete_name(uint8_t *data, size_t len); -- 2.47.3