From 865ec9f76015653b82b4a42d45257f5c4f68b37b Mon Sep 17 00:00:00 2001 From: h2zero Date: Tue, 25 Feb 2025 16:52:45 -0700 Subject: [PATCH] [Bugfix] Check if remote descriptor vector has increased. --- src/NimBLERemoteCharacteristic.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/NimBLERemoteCharacteristic.cpp b/src/NimBLERemoteCharacteristic.cpp index dc8e73a..dbae3ac 100644 --- a/src/NimBLERemoteCharacteristic.cpp +++ b/src/NimBLERemoteCharacteristic.cpp @@ -117,6 +117,7 @@ bool NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEDescriptorFilter* pFi return false; } + auto prevDscCount = m_vDescriptors.size(); NimBLEUtils::taskWait(pFilter->taskData, BLE_NPL_TIME_FOREVER); rc = ((NimBLETaskData*)pFilter->taskData)->m_flags; if (rc != BLE_HS_EDONE) { @@ -124,8 +125,11 @@ bool NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEDescriptorFilter* pFi return false; } - pFilter->dsc = m_vDescriptors.back(); - NIMBLE_LOGD(LOG_TAG, "<< retrieveDescriptors(): found %d descriptors.", m_vDescriptors.size()); + if (m_vDescriptors.size() > prevDscCount) { + pFilter->dsc = m_vDescriptors.back(); + } + + NIMBLE_LOGD(LOG_TAG, "<< retrieveDescriptors(): found %d descriptors.", m_vDescriptors.size() - prevDscCount); return true; } // retrieveDescriptors