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

This commit is contained in:
baohongde 2023-09-06 17:39:04 +08:00 committed by Bao Hong De
parent ddcb5f663c
commit 298e8cd7cb

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 */
}
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;
} else if (btm_status != BTM_SUCCESS) {
status = BTA_FAILURE;