Message ID | 20230706133605.23325-2-claudia.rosu@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | adapter: Allow broadcaster to be passed up to application | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/CheckPatch | success | CheckPatch PASS |
tedd_an/GitLint | success | Gitlint PASS |
tedd_an/BuildEll | success | Build ELL PASS |
tedd_an/BluezMake | success | Bluez Make PASS |
tedd_an/MakeCheck | success | Bluez Make Check PASS |
tedd_an/MakeDistcheck | success | Make Distcheck PASS |
tedd_an/CheckValgrind | success | Check Valgrind PASS |
tedd_an/CheckSmatch | success | CheckSparse PASS |
tedd_an/bluezmakeextell | success | Make External ELL PASS |
tedd_an/IncrementalBuild | success | Incremental Build PASS |
tedd_an/ScanBuild | success | Scan Build PASS |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=763113 ---Test result--- Test Summary: CheckPatch PASS 0.34 seconds GitLint PASS 0.21 seconds BuildEll PASS 27.78 seconds BluezMake PASS 1032.58 seconds MakeCheck PASS 12.05 seconds MakeDistcheck PASS 159.81 seconds CheckValgrind PASS 261.24 seconds CheckSmatch PASS 351.87 seconds bluezmakeextell PASS 106.92 seconds IncrementalBuild PASS 917.45 seconds ScanBuild PASS 1099.94 seconds --- Regards, Linux Bluetooth
diff --git a/src/adapter.c b/src/adapter.c index 2679d4302..a48d73ddb 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -7031,6 +7031,27 @@ static bool is_filter_match(GSList *discovery_filter, struct eir_data *eir_data, return got_match; } +static int find_baas(gconstpointer a, gconstpointer b) +{ + const struct eir_sd *sd = a; + const char *baas_uuid = b; + + return strcmp(sd->uuid, baas_uuid); +} + +static bool accept_bcast_adv(struct btd_adapter *adapter, + struct eir_data *eir_data) +{ + if ((btd_adapter_has_settings(adapter, MGMT_SETTING_ISO_SYNC_RECEIVER)) + && !(eir_data->flags & (EIR_LIM_DISC | EIR_GEN_DISC)) + && (g_slist_find_custom(eir_data->sd_list, + BAA_SERVICE_UUID, find_baas))) { + return true; + } + + return false; +} + static void filter_duplicate_data(void *data, void *user_data) { struct discovery_client *client = data; @@ -7154,6 +7175,9 @@ void btd_adapter_device_found(struct btd_adapter *adapter, return; } + if (accept_bcast_adv(adapter, &eir_data)) + monitoring = true; + if (!discoverable && !monitoring && !eir_data.rsi) { eir_data_free(&eir_data); return;