Skip to content

Commit

Permalink
fixed the issue iOS devices cannot initiate connection
Browse files Browse the repository at this point in the history
to ESP32 while there is a BLE connection to this ESP32

Closes #6557
  • Loading branch information
BetterJincheng committed Nov 14, 2022
1 parent d1b3b6a commit c6277f4
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 16 deletions.
16 changes: 0 additions & 16 deletions components/bt/host/bluedroid/stack/btm/btm_acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -800,22 +800,6 @@ void btm_acl_encrypt_change (UINT16 handle, UINT8 status, UINT8 encr_enable)
}
#endif
}
#if (CLASSIC_BT_INCLUDED == TRUE)
/* If authentication is done through legacy authentication and esp32 has
* not authenticated peer deivce yet, do not proceed for encrytion and
* first authenticate it. */
else if ((BTM_BothEndsSupportSecureConnections(p->remote_addr) == 0) &&
((p->legacy_auth_state & BTM_ACL_LEGACY_AUTH_SELF) == 0)) {
if ((p_dev_rec = btm_find_dev (p->remote_addr)) != NULL) {
if (btm_sec_legacy_authentication_mutual(p_dev_rec)) {
btm_sec_update_legacy_auth_state(btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR), BTM_ACL_LEGACY_AUTH_SELF);
} else {
BTM_TRACE_ERROR("%s failed, Resources not available for Authentication procedure", __FUNCTION__);
}
}
}
#endif

}
/*******************************************************************************
**
Expand Down
9 changes: 9 additions & 0 deletions components/bt/host/bluedroid/stack/btm/btm_sec.c
Original file line number Diff line number Diff line change
Expand Up @@ -5170,6 +5170,15 @@ static tBTM_STATUS btm_sec_execute_procedure (tBTM_SEC_DEV_REC *p_dev_rec)
return (BTM_CMD_STARTED);
}

#if (CLASSIC_BT_INCLUDED == TRUE)
tACL_CONN *p_acl_cb = btm_handle_to_acl(p_dev_rec->hci_handle);
/* If esp32 has not authenticated peer deivce yet, just remove the flag of BTM_SEC_AUTHENTICATED. */
if ((BTM_BothEndsSupportSecureConnections(p_acl_cb->remote_addr) == 0) &&
((p_acl_cb->legacy_auth_state & BTM_ACL_LEGACY_AUTH_SELF) == 0)) {
p_dev_rec->sec_flags &= ~BTM_SEC_AUTHENTICATED;
}
#endif

/* If connection is not authenticated and authentication is required */
/* start authentication and return PENDING to the caller */
if ((((!(p_dev_rec->sec_flags & BTM_SEC_AUTHENTICATED))
Expand Down

0 comments on commit c6277f4

Please sign in to comment.