Don't disconnect on failure to register for service changed notification
Bug: 28721625
Change-Id: I2214fb2576f0f0794922ed9b47d8805839d69bfd
diff --git a/stack/gatt/gatt_attr.c b/stack/gatt/gatt_attr.c
index 130ed3f..9a2c6fa 100644
--- a/stack/gatt/gatt_attr.c
+++ b/stack/gatt/gatt_attr.c
@@ -299,21 +299,6 @@
/*******************************************************************************
**
-** Function gatt_config_ccc_complete
-**
-** Description The function finish the service change ccc configuration
-**
-** Returns void
-**
-*******************************************************************************/
-static void gatt_config_ccc_complete(tGATT_PROFILE_CLCB *p_clcb)
-{
- GATT_Disconnect(p_clcb->conn_id);
- gatt_profile_clcb_dealloc(p_clcb);
-}
-
-/*******************************************************************************
-**
** Function gatt_disc_res_cback
**
** Description Gatt profile discovery result callback
@@ -372,9 +357,7 @@
p_clcb->ccc_stage ++;
gatt_cl_start_config_ccc(p_clcb);
} else {
- GATT_TRACE_ERROR("%s() - Register for service changed indication failure", __FUNCTION__);
- /* free the connection */
- gatt_config_ccc_complete (p_clcb);
+ GATT_TRACE_ERROR("%s() - Unable to register for service changed indication", __func__);
}
}
@@ -422,11 +405,7 @@
srvc_disc_param.e_handle = 0xffff;
srvc_disc_param.service.len = 2;
srvc_disc_param.service.uu.uuid16 = UUID_SERVCLASS_GATT_SERVER;
- if (GATTC_Discover (p_clcb->conn_id, GATT_DISC_SRVC_BY_UUID, &srvc_disc_param) != GATT_SUCCESS)
- {
- GATT_TRACE_ERROR("%s() - ccc service error", __FUNCTION__);
- gatt_config_ccc_complete(p_clcb);
- }
+ GATTC_Discover(p_clcb->conn_id, GATT_DISC_SRVC_BY_UUID, &srvc_disc_param);
break;
case GATT_SVC_CHANGED_CHARACTERISTIC: /* discover service change char */
@@ -434,32 +413,20 @@
srvc_disc_param.e_handle = p_clcb->e_handle;
srvc_disc_param.service.len = 2;
srvc_disc_param.service.uu.uuid16 = GATT_UUID_GATT_SRV_CHGD;
- if (GATTC_Discover (p_clcb->conn_id, GATT_DISC_CHAR, &srvc_disc_param) != GATT_SUCCESS)
- {
- GATT_TRACE_ERROR("%s() - ccc char error", __FUNCTION__);
- gatt_config_ccc_complete(p_clcb);
- }
+ GATTC_Discover(p_clcb->conn_id, GATT_DISC_CHAR, &srvc_disc_param);
break;
case GATT_SVC_CHANGED_DESCRIPTOR: /* discover service change ccc */
srvc_disc_param.s_handle = p_clcb->s_handle;
srvc_disc_param.e_handle = p_clcb->e_handle;
- if (GATTC_Discover (p_clcb->conn_id, GATT_DISC_CHAR_DSCPT, &srvc_disc_param) != GATT_SUCCESS)
- {
- GATT_TRACE_ERROR("%s() - ccc char descriptor error", __FUNCTION__);
- gatt_config_ccc_complete(p_clcb);
- }
+ GATTC_Discover(p_clcb->conn_id, GATT_DISC_CHAR_DSCPT, &srvc_disc_param);
break;
case GATT_SVC_CHANGED_CONFIGURE_CCCD: /* write ccc */
ccc_value.handle = p_clcb->s_handle;
ccc_value.len = 2;
ccc_value.value[0] = GATT_CLT_CONFIG_INDICATION;
- if (GATTC_Write (p_clcb->conn_id, GATT_WRITE, &ccc_value) != GATT_SUCCESS)
- {
- GATT_TRACE_ERROR("%s() - write ccc error", __FUNCTION__);
- gatt_config_ccc_complete(p_clcb);
- }
+ GATTC_Write(p_clcb->conn_id, GATT_WRITE, &ccc_value);
break;
}
}