int scan_data_len = 0;
ret_if(le_dev_info == NULL);
- if (_bt_get_le_scan_type() == BT_LE_ACTIVE_SCAN)
- ret_if(adv_info == NULL);
- if (_bt_get_le_scan_type() == BT_LE_PASSIVE_SCAN) {
+ if (adv_info == NULL) { /* Not received scan response data within 1 sec */
adv_data = le_dev_info->adv_data;
adv_data_len = le_dev_info->adv_data_len;
scan_data = le_dev_info->adv_data;
le_dev_info.addr_type = adv_info->addr_type;
le_dev_info.rssi = adv_info->rssi;
le_dev_info.adv_data = adv_info->data;
- le_dev_info.adv_data_len = 0;
+ le_dev_info.adv_data_len = adv_info->data_len;
adv_info->timer_id = 0;
- _bt_send_scan_result_event(&le_dev_info, adv_info);
+ _bt_send_scan_result_event(&le_dev_info, NULL);
__bt_del_adv_ind_info(adv_info->addr);
return FALSE;
return;
}
- if (le_dev_info->adv_type != BT_LE_ADV_SCAN_RSP) { /* ADV_IND */
+ if (le_dev_info->adv_type == BT_LE_ADV_DIRECT_IND ||
+ le_dev_info->adv_type == BT_LE_ADV_NONCONN_IND) {
+ _bt_send_scan_result_event(le_dev_info, NULL);
+ } else if (le_dev_info->adv_type == BT_LE_ADV_IND ||
+ le_dev_info->adv_type == BT_LE_ADV_SCAN_IND) {
adv_info = g_malloc0(sizeof(bt_le_adv_info_t));
adv_info->addr = g_strdup(le_dev_info->address);
adv_info->addr_type = le_dev_info->addr_type;