Author: takawata
Date: Tue Jul  7 15:56:51 2015
New Revision: 285244
URL: https://svnweb.freebsd.org/changeset/base/285244

Log:
  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.

Modified:
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c

Modified: head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
==============================================================================
--- head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jul  7 15:22:29 
2015        (r285243)
+++ head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jul  7 15:56:51 
2015        (r285244)
@@ -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);
        }
 

Modified: head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
==============================================================================
--- head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c     Tue Jul  7 
15:22:29 2015        (r285243)
+++ head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c     Tue Jul  7 
15:56:51 2015        (r285244)
@@ -1339,6 +1339,8 @@ ng_btsocket_rfcomm_session_create(ng_bts
        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_bts
                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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to