emulator: Add basic L2CAP Config Request handling to bthost

This commit is contained in:
Johan Hedberg 2013-05-27 11:42:02 +03:00
parent ac2161c7a9
commit d705186967

View File

@ -426,6 +426,25 @@ static bool l2cap_conn_req(struct bthost *bthost, uint16_t handle,
return true;
}
static bool l2cap_config_req(struct bthost *bthost, uint16_t handle,
uint8_t ident, const void *data, uint16_t len)
{
const struct bt_l2cap_pdu_config_req *req = data;
struct bt_l2cap_pdu_config_rsp rsp;
if (len < sizeof(*req))
return false;
memset(&rsp, 0, sizeof(rsp));
rsp.dcid = req->dcid;
rsp.flags = req->flags;
send_l2cap_sig(bthost, handle, BT_L2CAP_PDU_CONFIG_RSP, ident, &rsp,
sizeof(rsp));
return true;
}
static bool l2cap_info_req(struct bthost *bthost, uint16_t handle,
uint8_t ident, const void *data, uint16_t len)
{
@ -466,6 +485,13 @@ static void l2cap_sig(struct bthost *bthost, uint16_t handle, const void *data,
goto reject;
break;
case BT_L2CAP_PDU_CONFIG_REQ:
if (!l2cap_config_req(bthost, handle, hdr->ident,
data + sizeof(*hdr), hdr_len))
goto reject;
break;
case BT_L2CAP_PDU_INFO_REQ:
if (!l2cap_info_req(bthost, handle, hdr->ident,
data + sizeof(*hdr), hdr_len))