Skip to content

Commit 6427ee0

Browse files
committed
Bugfix: add missing taskData when retrieving all descriptors
1 parent 5179398 commit 6427ee0

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/NimBLERemoteCharacteristic.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,13 @@ bool NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEDescriptorFilter* fil
115115
return false;
116116
}
117117

118-
NimBLEUtils::taskWait(filter->taskData, BLE_NPL_TIME_FOREVER);
118+
if (filter == nullptr) {
119+
NimBLETaskData taskData(const_cast<NimBLERemoteCharacteristic*>(this));
120+
NimBLEDescriptorFilter filter{nullptr, nullptr, &taskData};
121+
NimBLEUtils::taskWait(filter.taskData, BLE_NPL_TIME_FOREVER);
122+
} else {
123+
NimBLEUtils::taskWait(filter->taskData, BLE_NPL_TIME_FOREVER);
124+
}
119125
rc = ((NimBLETaskData*)filter->taskData)->m_flags;
120126
if (rc != BLE_HS_EDONE) {
121127
NIMBLE_LOGE(LOG_TAG, "<< retrieveDescriptors(): failed: rc=%d %s", rc, NimBLEUtils::returnCodeToString(rc));
@@ -135,7 +141,7 @@ bool NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEDescriptorFilter* fil
135141
NimBLERemoteDescriptor* NimBLERemoteCharacteristic::getDescriptor(const NimBLEUUID& uuid) const {
136142
NIMBLE_LOGD(LOG_TAG, ">> getDescriptor: uuid: %s", uuid.toString().c_str());
137143
NimBLETaskData taskData(const_cast<NimBLERemoteCharacteristic*>(this));
138-
NimBLEDescriptorFilter filter = {nullptr, &uuid, &taskData};
144+
NimBLEDescriptorFilter filter{nullptr, &uuid, &taskData};
139145
NimBLEUUID uuidTmp;
140146

141147
for (const auto& dsc : m_vDescriptors) {

0 commit comments

Comments
 (0)