From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> By default bt_ad was setting just BT_AD_MAX_DATA_LEN (31) which is not enough to handle devices advertising using EA, so this switches the default to be BT_EA_MAX_DATA_LEN (251) since EA is much more common nowadays and for those case where the it is not supported (e.g. for advertisers without EA support) then shall be using bt_ad_set_max_len to adjust the maximum length. Fixes: https://github.com/bluez/bluez/issues/832 --- src/shared/ad.c | 2 +- src/shared/ad.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shared/ad.c b/src/shared/ad.c index 2d6fc628eabc..f3fb428e25c6 100644 --- a/src/shared/ad.c +++ b/src/shared/ad.c @@ -48,7 +48,7 @@ struct bt_ad *bt_ad_new(void) struct bt_ad *ad; ad = new0(struct bt_ad, 1); - ad->max_len = BT_AD_MAX_DATA_LEN; + ad->max_len = BT_EA_MAX_DATA_LEN; ad->service_uuids = queue_new(); ad->manufacturer_data = queue_new(); ad->solicit_uuids = queue_new(); diff --git a/src/shared/ad.h b/src/shared/ad.h index 820b9177562b..11900706f9ed 100644 --- a/src/shared/ad.h +++ b/src/shared/ad.h @@ -15,6 +15,7 @@ #include "lib/uuid.h" #define BT_AD_MAX_DATA_LEN 31 +#define BT_EA_MAX_DATA_LEN 251 #define BT_PA_MAX_DATA_LEN 252 #define BT_AD_FLAGS 0x01 -- 2.44.0