Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 277731
b: refs/heads/master
c: f94ff6f
h: refs/heads/master
i:
  277729: 7878a3a
  277727: cbfee86
v: v3
  • Loading branch information
Mat Martineau authored and Gustavo F. Padovan committed Nov 7, 2011
1 parent 47127cb commit b9f8dae
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 38094c75b54c52b45f48b80fd2f6d1138a1b9b2b
refs/heads/master: f94ff6fff7b8b5896a173d165e9ec579c83067f2
47 changes: 47 additions & 0 deletions trunk/net/bluetooth/l2cap_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3104,6 +3104,45 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn, struct l2cap_cm
return 0;
}

static inline int l2cap_create_channel_req(struct l2cap_conn *conn,
struct l2cap_cmd_hdr *cmd, u16 cmd_len,
void *data)
{
struct l2cap_create_chan_req *req = data;
struct l2cap_create_chan_rsp rsp;
u16 psm, scid;

if (cmd_len != sizeof(*req))
return -EPROTO;

if (!enable_hs)
return -EINVAL;

psm = le16_to_cpu(req->psm);
scid = le16_to_cpu(req->scid);

BT_DBG("psm %d, scid %d, amp_id %d", psm, scid, req->amp_id);

/* Placeholder: Always reject */
rsp.dcid = 0;
rsp.scid = cpu_to_le16(scid);
rsp.result = L2CAP_CR_NO_MEM;
rsp.status = L2CAP_CS_NO_INFO;

l2cap_send_cmd(conn, cmd->ident, L2CAP_CREATE_CHAN_RSP,
sizeof(rsp), &rsp);

return 0;
}

static inline int l2cap_create_channel_rsp(struct l2cap_conn *conn,
struct l2cap_cmd_hdr *cmd, void *data)
{
BT_DBG("conn %p", conn);

return l2cap_connect_rsp(conn, cmd, data);
}

static inline int l2cap_check_conn_param(u16 min, u16 max, u16 latency,
u16 to_multiplier)
{
Expand Down Expand Up @@ -3216,6 +3255,14 @@ static inline int l2cap_bredr_sig_cmd(struct l2cap_conn *conn,
err = l2cap_information_rsp(conn, cmd, data);
break;

case L2CAP_CREATE_CHAN_REQ:
err = l2cap_create_channel_req(conn, cmd, cmd_len, data);
break;

case L2CAP_CREATE_CHAN_RSP:
err = l2cap_create_channel_rsp(conn, cmd, data);
break;

default:
BT_ERR("Unknown BR/EDR signaling command 0x%2.2x", cmd->code);
err = -EINVAL;
Expand Down

0 comments on commit b9f8dae

Please sign in to comment.