aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/rfcomm
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-07-03 04:37:55 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-07-03 22:54:09 -0400
commit300b93974ff64f1bef1ac8294547c573954f0300 (patch)
tree94b33acffd99c50986ba4ede3e61495485a88342 /net/bluetooth/rfcomm
parent7c2660b00fae0575dd4ce5c7b6bf30762b632045 (diff)
[Bluetooth] Add RFCOMM role switch support
This patch adds the support for RFCOMM role switching before the connection is fully established. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/rfcomm')
-rw-r--r--net/bluetooth/rfcomm/core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index fe18dc2dd3c1..155a2b93760e 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1150,6 +1150,8 @@ static inline int rfcomm_check_link_mode(struct rfcomm_dlc *d)
1150 1150
1151static void rfcomm_dlc_accept(struct rfcomm_dlc *d) 1151static void rfcomm_dlc_accept(struct rfcomm_dlc *d)
1152{ 1152{
1153 struct sock *sk = d->session->sock->sk;
1154
1153 BT_DBG("dlc %p", d); 1155 BT_DBG("dlc %p", d);
1154 1156
1155 rfcomm_send_ua(d->session, d->dlci); 1157 rfcomm_send_ua(d->session, d->dlci);
@@ -1159,6 +1161,9 @@ static void rfcomm_dlc_accept(struct rfcomm_dlc *d)
1159 d->state_change(d, 0); 1161 d->state_change(d, 0);
1160 rfcomm_dlc_unlock(d); 1162 rfcomm_dlc_unlock(d);
1161 1163
1164 if (d->link_mode & RFCOMM_LM_MASTER)
1165 hci_conn_switch_role(l2cap_pi(sk)->conn->hcon, 0x00);
1166
1162 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); 1167 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig);
1163} 1168}
1164 1169