Bluetooth: Fix non-SSP auth request for HIGH security level sockets
authorJohan Hedberg <johan.hedberg@nokia.com>
Fri, 15 Oct 2010 07:46:09 +0000 (10:46 +0300)
committerGustavo F. Padovan <padovan@profusion.mobi>
Tue, 9 Nov 2010 02:55:27 +0000 (00:55 -0200)
commitbdb7524a75e4716535a29abb314a82619301e068
tree3da5f18d2eb0fd1eebdb8b51c0581a51773ac283
parent96c99b473a8531188e2f6106c6ef0e33bb4500f2
Bluetooth: Fix non-SSP auth request for HIGH security level sockets

When initiating dedicated bonding a L2CAP raw socket with HIGH security
level is used. The kernel is supposed to trigger the authentication
request in this case but this doesn't happen currently for non-SSP
(pre-2.1) devices. The reason is that the authentication request happens
in the remote extended features callback which never gets called for
non-SSP devices. This patch fixes the issue by requesting also
authentiation in the (normal) remote features callback in the case of
non-SSP devices.

This rule is applied only for HIGH security level which might at first
seem unintuitive since on the server socket side MEDIUM is already
enough for authentication. However, for the clients we really want to
prefer the server side to decide the authentication requrement in most
cases, and since most client sockets use MEDIUM it's better to be
avoided on the kernel side for these sockets. The important socket to
request it for is the dedicated bonding one and that socket uses HIGH
security level.

The patch is based on the initial investigation and patch proposal from
Andrei Emeltchenko <endrei.emeltchenko@nokia.com>.

Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/hci_event.c