Merge branch 'bugfix/set_eir_when_no_eir_data' into 'master'

change(bt/bluedroid): Send a name tag with zero length when there is no EIR data

Closes BTQABR2023-100

See merge request espressif/esp-idf!25805
This commit is contained in:
Bao Hong De 2023-09-13 14:05:14 +08:00
commit e5739ddd45

View File

@ -4324,13 +4324,24 @@ static void bta_dm_set_eir (char *local_name)
} }
} }
if ( free_eir_length ) { /* If there is no other data to be sent in the EIR packet, the Host shall
* send a name tag with zero length and the type field set to indicate
* that this is the complete name (i.e., total of 2 octets with length =
* 1).
*/
if (eir_type_num == 0) {
UINT8_TO_STREAM(p, 1);
UINT8_TO_STREAM(p, BTM_EIR_COMPLETE_LOCAL_NAME_TYPE);
free_eir_length -= 2;
}
if (free_eir_length) {
UINT8_TO_STREAM(p, 0); /* terminator of significant part */ UINT8_TO_STREAM(p, 0); /* terminator of significant part */
} }
tBTM_STATUS btm_status = BTM_WriteEIR( p_buf, p_bta_dm_eir_cfg->bta_dm_eir_fec_required ); tBTM_STATUS btm_status = BTM_WriteEIR( p_buf, p_bta_dm_eir_cfg->bta_dm_eir_fec_required );
if ( btm_status == BTM_MODE_UNSUPPORTED) { if (btm_status == BTM_MODE_UNSUPPORTED) {
status = BTA_WRONG_MODE; status = BTA_WRONG_MODE;
} else if (btm_status != BTM_SUCCESS) { } else if (btm_status != BTM_SUCCESS) {
status = BTA_FAILURE; status = BTA_FAILURE;