This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git

commit 3c664f597dfb1fa93cd4e2acbb7a4946b3ec40c3
Author: Piotr Narajowski <[email protected]>
AuthorDate: Fri Aug 21 10:10:43 2026 +0200

    nimble/host: Add Read Multiple Var Len timeout callback
    
    Timeout function related to Read Multiple Variable
    Length procedure was missing. The application was never
    notified when this procedure has timed out.
---
 nimble/host/src/ble_gattc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/nimble/host/src/ble_gattc.c b/nimble/host/src/ble_gattc.c
index 7c0e62aa4..4c62e4de0 100644
--- a/nimble/host/src/ble_gattc.c
+++ b/nimble/host/src/ble_gattc.c
@@ -320,6 +320,7 @@ static ble_gattc_tmo_fn ble_gattc_read_tmo;
 static ble_gattc_tmo_fn ble_gattc_read_uuid_tmo;
 static ble_gattc_tmo_fn ble_gattc_read_long_tmo;
 static ble_gattc_tmo_fn ble_gattc_read_mult_tmo;
+static ble_gattc_tmo_fn ble_gattc_read_mult_var_tmo;
 static ble_gattc_tmo_fn ble_gattc_write_tmo;
 static ble_gattc_tmo_fn ble_gattc_write_long_tmo;
 static ble_gattc_tmo_fn ble_gattc_write_reliable_tmo;
@@ -338,6 +339,7 @@ ble_gattc_tmo_dispatch[BLE_GATT_OP_CNT] = {
     [BLE_GATT_OP_READ_UUID]         = ble_gattc_read_uuid_tmo,
     [BLE_GATT_OP_READ_LONG]         = ble_gattc_read_long_tmo,
     [BLE_GATT_OP_READ_MULT]         = ble_gattc_read_mult_tmo,
+    [BLE_GATT_OP_READ_MULT_VAR]     = ble_gattc_read_mult_var_tmo,
     [BLE_GATT_OP_WRITE]             = ble_gattc_write_tmo,
     [BLE_GATT_OP_WRITE_LONG]        = ble_gattc_write_long_tmo,
     [BLE_GATT_OP_WRITE_RELIABLE]    = ble_gattc_write_reliable_tmo,
@@ -3505,6 +3507,15 @@ ble_gattc_read_mult_var_err(struct ble_gattc_proc *proc, 
int status,
     ble_gattc_read_mult_cb_var(proc, status, att_handle, NULL);
 }
 
+static void
+ble_gattc_read_mult_var_tmo(struct ble_gattc_proc *proc)
+{
+    BLE_HS_DBG_ASSERT(!ble_hs_locked_by_cur_task());
+    ble_gattc_dbg_assert_proc_not_inserted(proc);
+
+    ble_gattc_read_mult_cb_var(proc, BLE_HS_ETIMEOUT, 0, 0);
+}
+
 static int
 ble_gattc_read_mult_tx(struct ble_gattc_proc *proc)
 {

Reply via email to