diff --git a/src/shared/ad.c b/src/shared/ad.c
index f3fb428..d08ce7a 100644
--- a/src/shared/ad.c
+++ b/src/shared/ad.c
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);
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 1190070..90cc82d 100644
--- a/src/shared/ad.h
+++ b/src/shared/ad.h
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);