Bluetooth: controller: split: Fix start encryption in progress check
Fix check in start encryption to disallow new encryption setup while there is one already in progress. Relates to commit 120eba45f81b ("Bluetooth: controller: Fix start encryption in progress check"). Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
7f0a95468a
commit
b0c495791a
1 changed files with 5 additions and 3 deletions
|
@ -344,7 +344,9 @@ u8_t ll_enc_req_send(u16_t handle, u8_t *rand, u8_t *ediv, u8_t *ltk)
|
|||
return BT_HCI_ERR_UNKNOWN_CONN_ID;
|
||||
}
|
||||
|
||||
if (conn->llcp_enc.req != conn->llcp_enc.ack) {
|
||||
if ((conn->llcp_enc.req != conn->llcp_enc.ack) ||
|
||||
((conn->llcp_req != conn->llcp_ack) &&
|
||||
(conn->llcp_type == LLCP_ENCRYPTION))) {
|
||||
return BT_HCI_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
|
@ -356,7 +358,7 @@ u8_t ll_enc_req_send(u16_t handle, u8_t *rand, u8_t *ediv, u8_t *ltk)
|
|||
|
||||
memcpy(&conn->llcp_enc.ltk[0], ltk, sizeof(conn->llcp_enc.ltk));
|
||||
|
||||
if ((conn->lll.enc_rx == 0) && (conn->lll.enc_tx == 0)) {
|
||||
if (!conn->lll.enc_rx && !conn->lll.enc_tx) {
|
||||
struct pdu_data_llctrl_enc_req *enc_req;
|
||||
|
||||
pdu_data_tx->ll_id = PDU_DATA_LLID_CTRL;
|
||||
|
@ -372,7 +374,7 @@ u8_t ll_enc_req_send(u16_t handle, u8_t *rand, u8_t *ediv, u8_t *ltk)
|
|||
enc_req->ediv[1] = ediv[1];
|
||||
bt_rand(enc_req->skdm, sizeof(enc_req->skdm));
|
||||
bt_rand(enc_req->ivm, sizeof(enc_req->ivm));
|
||||
} else if ((conn->lll.enc_rx != 0) && (conn->lll.enc_tx != 0)) {
|
||||
} else if (conn->lll.enc_rx && conn->lll.enc_tx) {
|
||||
memcpy(&conn->llcp_enc.rand[0], rand,
|
||||
sizeof(conn->llcp_enc.rand));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue