diff --git a/emulator/bthost.c b/emulator/bthost.c
index ecb9a53..c9ae91c 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
const struct bt_l2cap_hdr_sig *hdr = data;
struct bt_l2cap_pdu_cmd_reject rej;
uint16_t hdr_len;
+ bool ret;
if (len < sizeof(*hdr))
goto reject;
switch (hdr->code) {
case BT_L2CAP_PDU_CONN_REQ:
- if (!l2cap_conn_req(bthost, handle, hdr->ident,
- data + sizeof(*hdr), hdr_len))
- goto reject;
+ ret = l2cap_conn_req(bthost, handle, hdr->ident,
+ data + sizeof(*hdr), hdr_len);
break;
case BT_L2CAP_PDU_CONFIG_REQ:
- if (!l2cap_config_req(bthost, handle, hdr->ident,
- data + sizeof(*hdr), hdr_len))
- goto reject;
+ ret = l2cap_config_req(bthost, handle, hdr->ident,
+ data + sizeof(*hdr), hdr_len);
break;
case BT_L2CAP_PDU_CONFIG_RSP:
- if (!l2cap_config_rsp(bthost, handle, hdr->ident,
- data + sizeof(*hdr), hdr_len))
- goto reject;
+ ret = l2cap_config_rsp(bthost, handle, hdr->ident,
+ data + sizeof(*hdr), hdr_len);
break;
case BT_L2CAP_PDU_INFO_REQ:
- if (!l2cap_info_req(bthost, handle, hdr->ident,
- data + sizeof(*hdr), hdr_len))
- goto reject;
+ ret = l2cap_info_req(bthost, handle, hdr->ident,
+ data + sizeof(*hdr), hdr_len);
break;
+
default:
printf("Unknown L2CAP code 0x%02x\n", hdr->code);
- goto reject;
+ ret = false;
}
- return;
+ if (ret)
+ return;
reject:
memset(&rej, 0, sizeof(rej));