component/bt: Fix bug of disconnected fail during pairing
This commit is contained in:
parent
5401a75bad
commit
1de63e9d90
|
@ -69,8 +69,12 @@ void smp_l2cap_if_init (void)
|
||||||
fixed_reg.pL2CA_FixedTxComplete_Cb = smp_tx_complete_callback;
|
fixed_reg.pL2CA_FixedTxComplete_Cb = smp_tx_complete_callback;
|
||||||
|
|
||||||
fixed_reg.pL2CA_FixedCong_Cb = NULL; /* do not handle congestion on this channel */
|
fixed_reg.pL2CA_FixedCong_Cb = NULL; /* do not handle congestion on this channel */
|
||||||
fixed_reg.default_idle_tout = 60; /* set 60 seconds timeout, 0xffff default idle timeout */
|
fixed_reg.default_idle_tout = 0; /* set 0 seconds timeout, 0xffff default idle timeout.
|
||||||
|
This timeout is used to wait for the end of the pairing
|
||||||
|
and then make a disconnect request, setting a larger value
|
||||||
|
will cause the disconnect event to go back up for a long time.
|
||||||
|
Set to 0 will be disconnected directly, and it will come up
|
||||||
|
pairing failure, so it will not cause adverse effects. */
|
||||||
L2CA_RegisterFixedChannel (L2CAP_SMP_CID, &fixed_reg);
|
L2CA_RegisterFixedChannel (L2CAP_SMP_CID, &fixed_reg);
|
||||||
#if (CLASSIC_BT_INCLUDED == TRUE)
|
#if (CLASSIC_BT_INCLUDED == TRUE)
|
||||||
fixed_reg.pL2CA_FixedConn_Cb = smp_br_connect_callback;
|
fixed_reg.pL2CA_FixedConn_Cb = smp_br_connect_callback;
|
||||||
|
@ -158,7 +162,7 @@ static void smp_data_received(UINT16 channel, BD_ADDR bd_addr, BT_HDR *p_buf)
|
||||||
|
|
||||||
/* reject the pairing request if there is an on-going SMP pairing */
|
/* reject the pairing request if there is an on-going SMP pairing */
|
||||||
if (SMP_OPCODE_PAIRING_REQ == cmd || SMP_OPCODE_SEC_REQ == cmd) {
|
if (SMP_OPCODE_PAIRING_REQ == cmd || SMP_OPCODE_SEC_REQ == cmd) {
|
||||||
if ((p_cb->state == SMP_STATE_IDLE) && (p_cb->br_state == SMP_BR_STATE_IDLE) &&
|
if ((p_cb->state == SMP_STATE_IDLE) && (p_cb->br_state == SMP_BR_STATE_IDLE) &&
|
||||||
!(p_cb->flags & SMP_PAIR_FLAGS_WE_STARTED_DD)) {
|
!(p_cb->flags & SMP_PAIR_FLAGS_WE_STARTED_DD)) {
|
||||||
p_cb->role = L2CA_GetBleConnRole(bd_addr);
|
p_cb->role = L2CA_GetBleConnRole(bd_addr);
|
||||||
memcpy(&p_cb->pairing_bda[0], bd_addr, BD_ADDR_LEN);
|
memcpy(&p_cb->pairing_bda[0], bd_addr, BD_ADDR_LEN);
|
||||||
|
|
Loading…
Reference in a new issue