From: Marcel Holtmann <marcel@holtmann.org>
To: Brian Gix <bgix@codeaurora.org>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH 1/5] Bluetooth: Add SMP support to user_confirm_reply
Date: Sat, 12 Nov 2011 15:52:56 +0900 [thread overview]
Message-ID: <1321080780.15441.425.camel@aeonflux> (raw)
In-Reply-To: <1321057441-7921-2-git-send-email-bgix@codeaurora.org>
Hi Brian,
> to enable User Confirmation during LE-SMP pairing.
>
> Signed-off-by: Brian Gix <bgix@codeaurora.org>
> ---
> net/bluetooth/mgmt.c | 22 +++++++++++++++++++---
> 1 files changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index 5562c21..129424e 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -1445,6 +1445,7 @@ static int user_confirm_reply(struct sock *sk, u16 index, unsigned char *data,
> u16 mgmt_op, hci_op;
> struct pending_cmd *cmd;
> struct hci_dev *hdev;
> + struct hci_conn *conn;
> int err;
>
> BT_DBG("");
> @@ -1468,20 +1469,35 @@ static int user_confirm_reply(struct sock *sk, u16 index, unsigned char *data,
>
> if (!test_bit(HCI_UP, &hdev->flags)) {
> err = cmd_status(sk, index, mgmt_op, ENETDOWN);
> - goto failed;
> + goto done;
> + }
> +
> + /* Route command to HCI (if ACL Link) or SMP (if LE Link) */
actually this is only have of what you are doing here. So something like
this would be better (feel free to make it sounds nicer):
/*
* Check for an existing ACL link, if present use paring via
* HCI commands.
*
* If no ACL link is present, check for an LE link and if
* present, forward pairing handling to SMP engine.
*
* If neither ACL nor LE links are present, fail with error.
*/
> + conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
> + if (!conn) {
> + conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->bdaddr);
> + if (!conn) {
> + err = cmd_status(sk, index, mgmt_op, ENOTCONN);
> + goto done;
> + }
> +
> + /* Forward Confirm response to SMP */
> +
> + err = cmd_status(sk, index, mgmt_op, 0);
> + goto done;
> }
>
/* Continue with pairing via HCI */
> cmd = mgmt_pending_add(sk, mgmt_op, hdev, data, len);
> if (!cmd) {
> err = -ENOMEM;
> - goto failed;
> + goto done;
> }
Since I stumbled over the logic already twice and had to twist my brain
to ensure that it is correct, a comment is really needed.
Regards
Marcel
next prev parent reply other threads:[~2011-11-12 6:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-12 0:23 [PATCH 0/5] Bluetooth: Add MITM protection to SMP Brian Gix
2011-11-12 0:23 ` [PATCH 1/5] Bluetooth: Add SMP support to user_confirm_reply Brian Gix
2011-11-12 6:52 ` Marcel Holtmann [this message]
2011-11-12 0:23 ` [PATCH 2/5] Bluetooth: Add MGMT opcode for User Passkey entry Brian Gix
2011-11-12 6:57 ` Marcel Holtmann
2011-11-12 0:23 ` [PATCH 3/5] Bluetooth: Add User Passkey entry to HCI Events Brian Gix
2011-11-12 6:59 ` Marcel Holtmann
2011-11-12 9:29 ` Johan Hedberg
2011-11-12 0:24 ` [PATCH 4/5] Bluetooth: Cleanup blkcipher on SMP termination Brian Gix
2011-11-12 7:01 ` Marcel Holtmann
2011-11-12 0:24 ` [PATCH 5/5] Bluetooth: Add support for MITM LE-SMP pairing Brian Gix
2011-11-12 23:12 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1321080780.15441.425.camel@aeonflux \
--to=marcel@holtmann.org \
--cc=bgix@codeaurora.org \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox