From 263d6f7da564f5bf6c89a2beb3cc0b950252f059 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 15 May 2024 12:03:02 -0400 Subject: [PATCH] shared/ad: Add bt_ad_length This adds bt_ad_length which can be used to return the current size of the bt_ad data. --- src/shared/ad.c | 11 ++++++++--- src/shared/ad.h | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/shared/ad.c b/src/shared/ad.c index f3fb428e2..d08ce7af9 100644 --- a/src/shared/ad.c +++ b/src/shared/ad.c @@ -520,9 +520,14 @@ static size_t data_length(struct queue *queue) return length; } -static size_t calculate_length(struct bt_ad *ad) +size_t bt_ad_length(struct bt_ad *ad) { - size_t length = 0; + size_t length; + + if (!ad) + return 0; + + length = 0; length += uuid_list_length(ad->service_uuids); @@ -698,7 +703,7 @@ uint8_t *bt_ad_generate(struct bt_ad *ad, size_t *length) if (!ad) return NULL; - *length = calculate_length(ad); + *length = bt_ad_length(ad); if (*length > ad->max_len) return NULL; diff --git a/src/shared/ad.h b/src/shared/ad.h index 11900706f..90cc82de9 100644 --- a/src/shared/ad.h +++ b/src/shared/ad.h @@ -108,6 +108,8 @@ struct bt_ad *bt_ad_ref(struct bt_ad *ad); void bt_ad_unref(struct bt_ad *ad); +size_t bt_ad_length(struct bt_ad *ad); + uint8_t *bt_ad_generate(struct bt_ad *ad, size_t *length); bool bt_ad_is_empty(struct bt_ad *ad); -- 2.47.3