diff --git a/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioGattServer.cpp b/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioGattServer.cpp index 2ed03c6fff..af13e72db3 100644 --- a/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioGattServer.cpp +++ b/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioGattServer.cpp @@ -682,16 +682,24 @@ ble_error_t GattServer::write( } // This characteristic has a CCCD attribute. Handle notifications and indications. + size_t updates_sent = 0; + if (is_update_authorized(connection, att_handle)) { uint16_t cccEnabled = AttsCccEnabled(connection, cccd_index); if (cccEnabled & ATT_CLIENT_CFG_NOTIFY) { AttsHandleValueNtf(connection, att_handle, len, (uint8_t*)buffer); + updates_sent++; } if (cccEnabled & ATT_CLIENT_CFG_INDICATE) { AttsHandleValueInd(connection, att_handle, len, (uint8_t*)buffer); + updates_sent++; } } + if (updates_sent) { + handleDataSentEvent(updates_sent); + } + return BLE_ERROR_NONE; }