mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
component/bt: added the temp enhanced to solve the conn_interval not collect issues.
This commit is contained in:
parent
f114ef4a6a
commit
1739216787
@ -43,6 +43,8 @@
|
|||||||
//#include "osi/include/log.h"
|
//#include "osi/include/log.h"
|
||||||
|
|
||||||
#if SMP_INCLUDED == TRUE
|
#if SMP_INCLUDED == TRUE
|
||||||
|
// The temp variable to pass parameter between functions when in the connected event comeback.
|
||||||
|
static BOOLEAN temp_enhanced = FALSE;
|
||||||
extern BOOLEAN aes_cipher_msg_auth_code(BT_OCTET16 key, UINT8 *input, UINT16 length,
|
extern BOOLEAN aes_cipher_msg_auth_code(BT_OCTET16 key, UINT8 *input, UINT16 length,
|
||||||
UINT16 tlen, UINT8 *p_signature);
|
UINT16 tlen, UINT8 *p_signature);
|
||||||
extern void smp_link_encrypted(BD_ADDR bda, UINT8 encr_enable);
|
extern void smp_link_encrypted(BD_ADDR bda, UINT8 encr_enable);
|
||||||
@ -1581,7 +1583,7 @@ static void btm_ble_resolve_random_addr_on_conn_cmpl(void *p_rec, void *p_data)
|
|||||||
tBTM_SEC_DEV_REC *match_rec = (tBTM_SEC_DEV_REC *) p_rec;
|
tBTM_SEC_DEV_REC *match_rec = (tBTM_SEC_DEV_REC *) p_rec;
|
||||||
UINT8 role, bda_type;
|
UINT8 role, bda_type;
|
||||||
UINT16 handle;
|
UINT16 handle;
|
||||||
BD_ADDR bda;
|
BD_ADDR bda, local_rpa, peer_rpa;
|
||||||
UINT16 conn_interval, conn_latency, conn_timeout;
|
UINT16 conn_interval, conn_latency, conn_timeout;
|
||||||
BOOLEAN match = FALSE;
|
BOOLEAN match = FALSE;
|
||||||
|
|
||||||
@ -1590,12 +1592,17 @@ static void btm_ble_resolve_random_addr_on_conn_cmpl(void *p_rec, void *p_data)
|
|||||||
STREAM_TO_UINT8 (role, p);
|
STREAM_TO_UINT8 (role, p);
|
||||||
STREAM_TO_UINT8 (bda_type, p);
|
STREAM_TO_UINT8 (bda_type, p);
|
||||||
STREAM_TO_BDADDR (bda, p);
|
STREAM_TO_BDADDR (bda, p);
|
||||||
|
// if the enhanced is true, means the connection is enhanced connect,
|
||||||
|
// so the packet should include the local Resolvable Private Address and Peer Resolvable Private Address
|
||||||
|
if(temp_enhanced) {
|
||||||
|
STREAM_TO_BDADDR(local_rpa, p);
|
||||||
|
STREAM_TO_BDADDR(peer_rpa, p);
|
||||||
|
}
|
||||||
STREAM_TO_UINT16 (conn_interval, p);
|
STREAM_TO_UINT16 (conn_interval, p);
|
||||||
STREAM_TO_UINT16 (conn_latency, p);
|
STREAM_TO_UINT16 (conn_latency, p);
|
||||||
STREAM_TO_UINT16 (conn_timeout, p);
|
STREAM_TO_UINT16 (conn_timeout, p);
|
||||||
|
|
||||||
handle = HCID_GET_HANDLE (handle);
|
handle = HCID_GET_HANDLE (handle);
|
||||||
|
|
||||||
BTM_TRACE_EVENT ("%s\n", __func__);
|
BTM_TRACE_EVENT ("%s\n", __func__);
|
||||||
|
|
||||||
if (match_rec) {
|
if (match_rec) {
|
||||||
@ -1714,7 +1721,6 @@ void btm_ble_conn_complete(UINT8 *p, UINT16 evt_len, BOOLEAN enhanced)
|
|||||||
UINT16 conn_interval, conn_latency, conn_timeout;
|
UINT16 conn_interval, conn_latency, conn_timeout;
|
||||||
BOOLEAN match = FALSE;
|
BOOLEAN match = FALSE;
|
||||||
UNUSED(evt_len);
|
UNUSED(evt_len);
|
||||||
|
|
||||||
STREAM_TO_UINT8 (status, p);
|
STREAM_TO_UINT8 (status, p);
|
||||||
STREAM_TO_UINT16 (handle, p);
|
STREAM_TO_UINT16 (handle, p);
|
||||||
STREAM_TO_UINT8 (role, p);
|
STREAM_TO_UINT8 (role, p);
|
||||||
@ -1734,7 +1740,11 @@ void btm_ble_conn_complete(UINT8 *p, UINT16 evt_len, BOOLEAN enhanced)
|
|||||||
/* possiblly receive connection complete with resolvable random on
|
/* possiblly receive connection complete with resolvable random on
|
||||||
slave role while the device has been paired */
|
slave role while the device has been paired */
|
||||||
if (!match && role == HCI_ROLE_SLAVE && BTM_BLE_IS_RESOLVE_BDA(bda)) {
|
if (!match && role == HCI_ROLE_SLAVE && BTM_BLE_IS_RESOLVE_BDA(bda)) {
|
||||||
|
// save the enhanced value to used in btm_ble_resolve_random_addr_on_conn_cmpl func.
|
||||||
|
temp_enhanced = enhanced;
|
||||||
btm_ble_resolve_random_addr(bda, btm_ble_resolve_random_addr_on_conn_cmpl, p_data);
|
btm_ble_resolve_random_addr(bda, btm_ble_resolve_random_addr_on_conn_cmpl, p_data);
|
||||||
|
// set back the temp enhanced to default after used.
|
||||||
|
temp_enhanced = FALSE;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user