Bluetooth: Send Authentication Request command on pairing failure
authorSudha Bheemanna <b.sudha@samsung.com>
Thu, 8 Sep 2016 09:41:28 +0000 (15:11 +0530)
committerHoegeun Kwon <hoegeun.kwon@samsung.com>
Mon, 4 Nov 2019 09:00:55 +0000 (18:00 +0900)
This patch allows to send HCI_OP_AUTH_REQUESTED command
to the remote device if pairing failure happens because
of pin or key missing error.

Change-Id: I9c28394dc06b22fd5fe9e58ac0b7d728c086bde4
Signed-off-by: Sudha Bheemanna <b.sudha@samsung.com>
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
net/bluetooth/hci_event.c

index d464399..5d91a25 100644 (file)
@@ -2848,6 +2848,24 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
        if (!conn)
                goto unlock;
 
+#ifdef TIZEN_BT
+       /*  PIN or Key Missing patch */
+       BT_DBG("remote_auth %x, remote_cap %x, auth_type %x, io_capability %x",
+              conn->remote_auth, conn->remote_cap,
+              conn->auth_type, conn->io_capability);
+
+       if (ev->status == 0x06 && hci_conn_ssp_enabled(conn)) {
+               struct hci_cp_auth_requested cp;
+
+               BT_DBG("Pin or key missing");
+               hci_remove_link_key(hdev, &conn->dst);
+               cp.handle = cpu_to_le16(conn->handle);
+               hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
+                            sizeof(cp), &cp);
+               goto unlock;
+       }
+#endif
+
        if (!ev->status) {
                clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);