summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/bluetooth
diff options
context:
space:
mode:
authortakawata <takawata@FreeBSD.org>2015-07-07 15:56:51 +0000
committertakawata <takawata@FreeBSD.org>2015-07-07 15:56:51 +0000
commit04b1ca86a889b3e115f42441310e8b6d9dba5eed (patch)
treeaeab0855c9a37a7f8532094afe9372dda71faaa9 /sys/netgraph/bluetooth
parent2afd4cc980fbeaadf4916d948f5f4ddc34254c9a (diff)
downloadFreeBSD-src-04b1ca86a889b3e115f42441310e8b6d9dba5eed.zip
FreeBSD-src-04b1ca86a889b3e115f42441310e8b6d9dba5eed.tar.gz
Fix rfcomm_sppd regression I could reproduced.
To reproduce it, Two machine running FreeBSD and run rfcomm_sppd -c 3 -S rfcomm_sppd -a ${PEER} -c 3 on each side.
Diffstat (limited to 'sys/netgraph/bluetooth')
-rw-r--r--sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c2
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c b/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
index a0cfbcd..67ca43b 100644
--- a/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
+++ b/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
@@ -398,7 +398,7 @@ ng_l2cap_l2ca_con_ind(ng_l2cap_chan_p ch)
ip->lcid = ch->scid;
ip->psm = ch->psm;
ip->ident = ch->ident;
-
+ ip->linktype = ch->con->linktype;
NG_SEND_MSG_HOOK(error, l2cap->node, msg, l2cap->l2c, 0);
}
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
index a2190c7..f0cd01e 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
@@ -1339,6 +1339,8 @@ ng_btsocket_rfcomm_session_create(ng_btsocket_rfcomm_session_p *sp,
l2sa.l2cap_family = AF_BLUETOOTH;
l2sa.l2cap_psm = (dst == NULL)? htole16(NG_L2CAP_PSM_RFCOMM) : 0;
bcopy(src, &l2sa.l2cap_bdaddr, sizeof(l2sa.l2cap_bdaddr));
+ l2sa.l2cap_cid = 0;
+ l2sa.l2cap_bdaddr_type = BDADDR_BREDR;
error = sobind(s->l2so, (struct sockaddr *) &l2sa, td);
if (error != 0)
@@ -1360,6 +1362,8 @@ ng_btsocket_rfcomm_session_create(ng_btsocket_rfcomm_session_p *sp,
l2sa.l2cap_family = AF_BLUETOOTH;
l2sa.l2cap_psm = htole16(NG_L2CAP_PSM_RFCOMM);
bcopy(dst, &l2sa.l2cap_bdaddr, sizeof(l2sa.l2cap_bdaddr));
+ l2sa.l2cap_cid = 0;
+ l2sa.l2cap_bdaddr_type = BDADDR_BREDR;
error = soconnect(s->l2so, (struct sockaddr *) &l2sa, td);
if (error != 0)
OpenPOWER on IntegriCloud