Bluetooth: Set local OOB data flag if remote has our OOB data
If the SMP Pairing Request or Response PDU received from the remote device indicates that it has received our OOB data we should set the SMP_FLAG_LOCAL_OOB flag. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
1a8bab4f39
Коммит
58428563b5
|
@ -1735,6 +1735,9 @@ static u8 smp_cmd_pairing_req(struct l2cap_conn *conn, struct sk_buff *skb)
|
|||
memcpy(&smp->preq[1], req, sizeof(*req));
|
||||
skb_pull(skb, sizeof(*req));
|
||||
|
||||
if (req->oob_flag == SMP_OOB_PRESENT)
|
||||
set_bit(SMP_FLAG_LOCAL_OOB, &smp->flags);
|
||||
|
||||
/* SMP over BR/EDR requires special treatment */
|
||||
if (conn->hcon->type == ACL_LINK) {
|
||||
/* We must have a BR/EDR SC link */
|
||||
|
@ -1899,6 +1902,9 @@ static u8 smp_cmd_pairing_rsp(struct l2cap_conn *conn, struct sk_buff *skb)
|
|||
if (hci_dev_test_flag(hdev, HCI_SC_ONLY) && !(auth & SMP_AUTH_SC))
|
||||
return SMP_AUTH_REQUIREMENTS;
|
||||
|
||||
if (rsp->oob_flag == SMP_OOB_PRESENT)
|
||||
set_bit(SMP_FLAG_LOCAL_OOB, &smp->flags);
|
||||
|
||||
smp->prsp[0] = SMP_CMD_PAIRING_RSP;
|
||||
memcpy(&smp->prsp[1], rsp, sizeof(*rsp));
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче