diff options
author | takawata <takawata@FreeBSD.org> | 2015-07-07 15:56:51 +0000 |
---|---|---|
committer | takawata <takawata@FreeBSD.org> | 2015-07-07 15:56:51 +0000 |
commit | 04b1ca86a889b3e115f42441310e8b6d9dba5eed (patch) | |
tree | aeab0855c9a37a7f8532094afe9372dda71faaa9 /sys | |
parent | 2afd4cc980fbeaadf4916d948f5f4ddc34254c9a (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c | 2 | ||||
-rw-r--r-- | sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c | 4 |
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) |