--- mcap/mcap.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/mcap/mcap.c b/mcap/mcap.c index 64e76b5..1d33452 100644 --- a/mcap/mcap.c +++ b/mcap/mcap.c @@ -956,6 +956,14 @@ static void process_md_create_mdl_req(struct mcap_mcl *mcl, uint8_t *cmd, } cfga = conf = req->conf; + + mdl = get_mdl(mcl, mdl_id); + if (mdl && mdl->state == MDL_WAITING) { + /* A remote petition is also triying to connect this mdl_id + * so the petition is rejected by the moment */ + send4B_cmd(mcl, MCAP_MD_CREATE_MDL_RSP, MCAP_MDL_BUSY, mdl_id); + return; + } /* Callback to upper layer */ rsp = mcl->cb->mdl_conn_req(mcl, mdep_id, mdl_id, &conf, mcl->cb->user_data); @@ -977,7 +985,7 @@ static void process_md_create_mdl_req(struct mcap_mcl *mcl, uint8_t *cmd, return; } - mdl = get_mdl(mcl, mdl_id); + if (!mdl) { mdl = g_malloc0(sizeof(struct mcap_mdl)); mdl->mcl = mcl; -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html