From 51a72497b211bbd300a9b3bc1ff5591577ffc603 Mon Sep 17 00:00:00 2001 From: Lukasz Rymanowski Date: Fri, 31 Oct 2014 10:09:06 +0100 Subject: [PATCH] android/handsfree: Be more strict on SLC creation In case of any issue during SLC creation lets just drop the link --- android/handsfree.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/android/handsfree.c b/android/handsfree.c index de971b464..aaf4f7a82 100644 --- a/android/handsfree.c +++ b/android/handsfree.c @@ -1219,6 +1219,9 @@ static void at_cmd_cmer(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, } hfp_gw_send_result(dev->gw, HFP_RESULT_ERROR); + + if (dev->state != HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED) + hfp_gw_disconnect(dev->gw); } static void at_cmd_cind(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, @@ -1277,6 +1280,9 @@ static void at_cmd_cind(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, } hfp_gw_send_result(dev->gw, HFP_RESULT_ERROR); + + if (dev->state != HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED) + hfp_gw_disconnect(dev->gw); } static void at_cmd_brsf(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, @@ -1306,6 +1312,9 @@ static void at_cmd_brsf(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, } hfp_gw_send_result(dev->gw, HFP_RESULT_ERROR); + + if (dev->state != HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED) + hfp_gw_disconnect(dev->gw); } static void at_cmd_chld(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, @@ -1345,6 +1354,9 @@ static void at_cmd_chld(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, } hfp_gw_send_result(dev->gw, HFP_RESULT_ERROR); + + if (dev->state != HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED) + hfp_gw_disconnect(dev->gw); } static struct hfp_codec *find_codec_by_type(struct hf_device *dev, uint8_t type) @@ -1418,6 +1430,9 @@ static void at_cmd_bac(struct hfp_gw_result *result, enum hfp_gw_cmd_type type, failed: hfp_gw_send_result(dev->gw, HFP_RESULT_ERROR); + + if (dev->state != HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED) + hfp_gw_disconnect(dev->gw); } static void register_slc_at(struct hf_device *dev) -- 2.47.3