From 92876b244ced01d03f3a7fe0429194d1a0e75125 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 26 May 2020 11:07:48 -0700 Subject: [PATCH] advertising: Fix advertising flags When an instance wants to force being discoverable the code shall actually check if the adapter is in general disverable mode already and if not set BR/EDR as not supported so that devices scanning don't assume BR/EDR PHY is connectable when in fact it isn't. --- src/advertising.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/advertising.c b/src/advertising.c index 45ff19fa0..829c481f6 100644 --- a/src/advertising.c +++ b/src/advertising.c @@ -697,9 +697,12 @@ static bool parse_discoverable(DBusMessageIter *iter, dbus_message_iter_get_basic(iter, &discoverable); - if (discoverable) - flags = 0x02; - else + if (discoverable) { + /* Set BR/EDR Not Supported if adapter is no discoverable */ + if (!btd_adapter_get_discoverable(client->manager->adapter)) + flags = 0x04; + flags |= 0x02; + } else flags = 0x00; if (!set_flags(client , flags)) -- 2.47.3