mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
Bluetooth: Start SMP procedure
Start SMP procedure for LE connections. This modification intercepts l2cap received frames and call proper SMP functions to start the SMP procedure. By now, no keys are being used. Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org> Signed-off-by: Anderson Briglia <anderson.briglia@openbossa.org> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
This commit is contained in:
parent
133e14c158
commit
ea37012695
|
|
@ -54,6 +54,7 @@
|
|||
#include <net/bluetooth/bluetooth.h>
|
||||
#include <net/bluetooth/hci_core.h>
|
||||
#include <net/bluetooth/l2cap.h>
|
||||
#include <net/bluetooth/smp.h>
|
||||
|
||||
int disable_ertm;
|
||||
|
||||
|
|
@ -910,12 +911,15 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
|
|||
__clear_chan_timer(chan);
|
||||
l2cap_state_change(chan, BT_CONNECTED);
|
||||
sk->sk_state_change(sk);
|
||||
if (smp_conn_security(conn, chan->sec_level))
|
||||
BT_DBG("Insufficient security");
|
||||
}
|
||||
|
||||
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
|
||||
__clear_chan_timer(chan);
|
||||
l2cap_state_change(chan, BT_CONNECTED);
|
||||
sk->sk_state_change(sk);
|
||||
|
||||
} else if (chan->state == BT_CONNECT)
|
||||
l2cap_do_start(chan);
|
||||
|
||||
|
|
@ -4061,6 +4065,11 @@ static void l2cap_recv_frame(struct l2cap_conn *conn, struct sk_buff *skb)
|
|||
l2cap_att_channel(conn, cid, skb);
|
||||
break;
|
||||
|
||||
case L2CAP_CID_SMP:
|
||||
if (smp_sig_channel(conn, skb))
|
||||
l2cap_conn_del(conn->hcon, EACCES);
|
||||
break;
|
||||
|
||||
default:
|
||||
l2cap_data_channel(conn, cid, skb);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user