[PATCH BlueZ] Set BREDR not supported bit in AD Flag when discoverable is off

quic_prathm
2024-07-03T09:06:19Z

src/advertising.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/advertising.c b/src/advertising.c
index 5d373e088..e73191c2c 100644
--- a/src/advertising.c
+++ b/src/advertising.c
@@ -734,8 +734,7 @@ static bool set_flags(struct btd_adv_client *client, uint8_t flags)
/* Set BR/EDR Not Supported if adapter is not discoverable but the
* instance is.
*/
- if ((flags & (BT_AD_FLAG_GENERAL | BT_AD_FLAG_LIMITED)) &&
- !btd_adapter_get_discoverable(client->manager->adapter))
+ if (!btd_adapter_get_discoverable(client->manager->adapter))
flags |= BT_AD_FLAG_NO_BREDR;

if (!bt_ad_add_flags(client->data, &flags, 1))
@@ -1499,6 +1498,12 @@ static DBusMessage *parse_advertisement(struct btd_adv_client *client)
goto fail;
}

+ /* GAP.TS.p44 Test Spec GAP/DISC/NONM/BV-02-C
+ * BR/EDR Not Supported BIT shall be included
+ * in the AD Type flag.
+ */
+ set_flags(client, bt_ad_get_flags(client->data));
+
err = refresh_advertisement(client, add_adv_callback);

if (!err)
--
2.17.1