core/device: Make filtered discovery able to detect beacons

This makes it possible to use SetDiscoveryFilter to disable checking
discoverable flags making it possible to see beacons such as the ones
create by tools/eddystone that doesn't show on regular discovery sessions
since they are not discoverable/connectable.
This commit is contained in:
Luiz Augusto von Dentz 2016-05-27 12:44:55 +03:00
parent 42c648cc41
commit 1ca09244f3
2 changed files with 6 additions and 2 deletions

View File

@ -80,7 +80,11 @@ Methods void StartDiscovery()
When discovery filter is set, Device objects will be
created as new devices with matching criteria are
discovered. PropertiesChanged signals will be emitted
discovered regardless of they are connectable or
discoverable which enables listening to
non-connectable and non-discoverable devices.
PropertiesChanged signals will be emitted
for already existing Device objects, with updated RSSI
value. If one or more discovery filters have been set,
the RSSI delta-threshold, that is imposed by

View File

@ -5451,7 +5451,7 @@ static void update_found_devices(struct btd_adapter *adapter,
memset(&eir_data, 0, sizeof(eir_data));
eir_parse(&eir_data, data, data_len);
if (bdaddr_type == BDADDR_BREDR)
if (bdaddr_type == BDADDR_BREDR || adapter->filtered_discovery)
discoverable = true;
else
discoverable = eir_data.flags & (EIR_LIM_DISC | EIR_GEN_DISC);