Skip to content

Commit

Permalink
[Bluetooth] Advertise L2CAP features mask support
Browse files Browse the repository at this point in the history
Indicate the support for the L2CAP features mask value when the remote
entity tries to negotiate Bluetooth 1.2 specific features.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Marcel Holtmann authored and David S. Miller committed Oct 22, 2007
1 parent 4e8402a commit f0709e0
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions net/bluetooth/l2cap.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@
#define BT_DBG(D...)
#endif

#define VERSION "2.8"
#define VERSION "2.9"

static u32 l2cap_feat_mask = 0x0000;

static const struct proto_ops l2cap_sock_ops;

Expand Down Expand Up @@ -1775,16 +1777,27 @@ static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn, struct l2cap_cmd
static inline int l2cap_information_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data)
{
struct l2cap_info_req *req = (struct l2cap_info_req *) data;
struct l2cap_info_rsp rsp;
u16 type;

type = __le16_to_cpu(req->type);

BT_DBG("type 0x%4.4x", type);

rsp.type = cpu_to_le16(type);
rsp.result = cpu_to_le16(L2CAP_IR_NOTSUPP);
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(rsp), &rsp);
if (type == L2CAP_IT_FEAT_MASK) {
u8 buf[8];
struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) buf;
rsp->type = cpu_to_le16(L2CAP_IT_FEAT_MASK);
rsp->result = cpu_to_le16(L2CAP_IR_SUCCESS);
put_unaligned(cpu_to_le32(l2cap_feat_mask), (__le32 *) rsp->data);
l2cap_send_cmd(conn, cmd->ident,
L2CAP_INFO_RSP, sizeof(buf), buf);
} else {
struct l2cap_info_rsp rsp;
rsp.type = cpu_to_le16(type);
rsp.result = cpu_to_le16(L2CAP_IR_NOTSUPP);
l2cap_send_cmd(conn, cmd->ident,
L2CAP_INFO_RSP, sizeof(rsp), &rsp);
}

return 0;
}
Expand Down

0 comments on commit f0709e0

Please sign in to comment.