Bluetooth: Switch ATT channels to use L2CAP_CHAN_FIXED
ATT channels are not connection oriented so having them use L2CAP_CHAN_CONN_ORIENTED is quite confusing. Instead, use the new L2CAP_CHAN_FIXED type and ensure that the MTU and CID values get properly set. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
@@ -101,6 +101,15 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
|
||||
if (!bdaddr_type_is_valid(la.l2_bdaddr_type))
|
||||
return -EINVAL;
|
||||
|
||||
if (la.l2_cid) {
|
||||
/* When the socket gets created it defaults to
|
||||
* CHAN_CONN_ORIENTED, so we need to overwrite the
|
||||
* default here.
|
||||
*/
|
||||
chan->chan_type = L2CAP_CHAN_FIXED;
|
||||
chan->omtu = L2CAP_DEFAULT_MTU;
|
||||
}
|
||||
|
||||
if (bdaddr_type_is_le(la.l2_bdaddr_type)) {
|
||||
if (!enable_lecoc && la.l2_psm)
|
||||
return -EINVAL;
|
||||
|
Reference in New Issue
Block a user