Bluetooth: host: Refactor get advertiser filter policy
Extract setting advertising filter policy parameter from the adv params options field to a helper function. Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This commit is contained in:
parent
88a6234ff2
commit
3c603b225b
1 changed files with 17 additions and 15 deletions
|
@ -5974,6 +5974,22 @@ int bt_le_adv_update_data(const struct bt_data *ad, size_t ad_len,
|
|||
return le_adv_update(ad, ad_len, sd, sd_len, connectable, use_name);
|
||||
}
|
||||
|
||||
static u8_t get_filter_policy(u8_t options)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_BT_WHITELIST)) {
|
||||
return BT_LE_ADV_FP_NO_WHITELIST;
|
||||
} else if ((options & BT_LE_ADV_OPT_FILTER_SCAN_REQ) &&
|
||||
(options & BT_LE_ADV_OPT_FILTER_CONN)) {
|
||||
return BT_LE_ADV_FP_WHITELIST_BOTH;
|
||||
} else if (options & BT_LE_ADV_OPT_FILTER_SCAN_REQ) {
|
||||
return BT_LE_ADV_FP_WHITELIST_SCAN_REQ;
|
||||
} else if (options & BT_LE_ADV_OPT_FILTER_CONN) {
|
||||
return BT_LE_ADV_FP_WHITELIST_CONN_IND;
|
||||
} else {
|
||||
return BT_LE_ADV_FP_NO_WHITELIST;
|
||||
}
|
||||
}
|
||||
|
||||
int bt_le_adv_start_internal(const struct bt_le_adv_param *param,
|
||||
const struct bt_data *ad, size_t ad_len,
|
||||
const struct bt_data *sd, size_t sd_len,
|
||||
|
@ -6007,26 +6023,12 @@ int bt_le_adv_start_internal(const struct bt_le_adv_param *param,
|
|||
set_param.min_interval = sys_cpu_to_le16(param->interval_min);
|
||||
set_param.max_interval = sys_cpu_to_le16(param->interval_max);
|
||||
set_param.channel_map = 0x07;
|
||||
set_param.filter_policy = get_filter_policy(param->options);
|
||||
|
||||
if (bt_dev.adv_id != param->id) {
|
||||
atomic_clear_bit(bt_dev.flags, BT_DEV_RPA_VALID);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_WHITELIST)
|
||||
if ((param->options & BT_LE_ADV_OPT_FILTER_SCAN_REQ) &&
|
||||
(param->options & BT_LE_ADV_OPT_FILTER_CONN)) {
|
||||
set_param.filter_policy = BT_LE_ADV_FP_WHITELIST_BOTH;
|
||||
} else if (param->options & BT_LE_ADV_OPT_FILTER_SCAN_REQ) {
|
||||
set_param.filter_policy = BT_LE_ADV_FP_WHITELIST_SCAN_REQ;
|
||||
} else if (param->options & BT_LE_ADV_OPT_FILTER_CONN) {
|
||||
set_param.filter_policy = BT_LE_ADV_FP_WHITELIST_CONN_IND;
|
||||
} else {
|
||||
#else
|
||||
{
|
||||
#endif /* defined(CONFIG_BT_WHITELIST) */
|
||||
set_param.filter_policy = BT_LE_ADV_FP_NO_WHITELIST;
|
||||
}
|
||||
|
||||
/* Set which local identity address we're advertising with */
|
||||
bt_dev.adv_id = param->id;
|
||||
id_addr = &bt_dev.id_addr[param->id];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue