diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
index 6016b06..30b271e 100644
--- a/src/shared/gatt-client.c
+++ b/src/shared/gatt-client.c
*/
uint16_t gatt_svc_handle;
uint16_t svc_chngd_val_handle;
+ uint16_t svc_chngd_ccc_handle;
unsigned int svc_chngd_ind_id;
struct queue *svc_chngd_queue; /* Queued service changed events */
bool in_svc_chngd;
"handle: 0x%04x, uuid: %s",
descs[i].handle, uuid_str);
- if (uuid_cmp(descs[i].uuid, GATT_CLIENT_CHARAC_CFG_UUID) == 0)
+ if (uuid_cmp(descs[i].uuid, GATT_CLIENT_CHARAC_CFG_UUID) == 0) {
op->cur_chrc->ccc_handle = descs[i].handle;
+ if (uuid_cmp(op->cur_chrc->chrc_external.uuid,
+ SVC_CHNGD_UUID) == 0)
+ client->svc_chngd_ccc_handle = descs[i].handle;
+ }
+
i++;
}
op->result_head = NULL;
op->result_tail = NULL;
- if (!client->svc_chngd_val_handle) {
+ if (!client->svc_chngd_val_handle || !client->svc_chngd_ccc_handle) {
client->ready = true;
goto done;
}