Skip to content

Commit 1f6b0b3

Browse files
buxtronixme-no-dev
andauthored
Have BLECLient gattc event handlers verify conn_id (#4064)
Co-authored-by: Me No Dev <[email protected]>
1 parent 342b9cf commit 1f6b0b3

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Diff for: libraries/BLE/src/BLEClient.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ void BLEClient::gattClientEventHandler(
178178
// - uint16_t conn_id
179179
// - esp_bd_addr_t remote_bda
180180
case ESP_GATTC_DISCONNECT_EVT: {
181-
if (evtParam->disconnect.conn_id != m_conn_id)
182-
break;
181+
if (evtParam->disconnect.conn_id != getConnId()) break;
183182
// If we receive a disconnect event, set the class flag that indicates that we are
184183
// no longer connected.
185184
m_isConnected = false;
@@ -229,13 +228,15 @@ void BLEClient::gattClientEventHandler(
229228
} // ESP_GATTC_REG_EVT
230229

231230
case ESP_GATTC_CFG_MTU_EVT:
231+
if (evtParam->cfg_mtu.conn_id != getConnId()) break;
232232
if(evtParam->cfg_mtu.status != ESP_GATT_OK) {
233233
log_e("Config mtu failed");
234234
}
235235
m_mtu = evtParam->cfg_mtu.mtu;
236236
break;
237237

238238
case ESP_GATTC_CONNECT_EVT: {
239+
if (evtParam->connect.conn_id != getConnId()) break;
239240
BLEDevice::updatePeerDevice(this, true, m_gattc_if);
240241
esp_err_t errRc = esp_ble_gattc_send_mtu_req(gattc_if, evtParam->connect.conn_id);
241242
if (errRc != ESP_OK) {
@@ -257,6 +258,7 @@ void BLEClient::gattClientEventHandler(
257258
// - uint16_t conn_id
258259
//
259260
case ESP_GATTC_SEARCH_CMPL_EVT: {
261+
if (evtParam->search_cmpl.conn_id != getConnId()) break;
260262
esp_ble_gattc_cb_param_t* p_data = (esp_ble_gattc_cb_param_t*)evtParam;
261263
if (p_data->search_cmpl.status != ESP_GATT_OK){
262264
log_e("search service failed, error status = %x", p_data->search_cmpl.status);
@@ -287,6 +289,7 @@ void BLEClient::gattClientEventHandler(
287289
// - esp_gatt_id_t srvc_id
288290
//
289291
case ESP_GATTC_SEARCH_RES_EVT: {
292+
if (evtParam->search_res.conn_id != getConnId()) break;
290293
BLEUUID uuid = BLEUUID(evtParam->search_res.srvc_id);
291294
BLERemoteService* pRemoteService = new BLERemoteService(
292295
evtParam->search_res.srvc_id,

0 commit comments

Comments
 (0)