From 10d1acb1f41bb583e2ac99d739d1efbeb84828bf Mon Sep 17 00:00:00 2001 From: Howard Chung Date: Mon, 28 Dec 2020 14:22:36 +0800 Subject: [PATCH] shared/gatt-client: Fix GATT client attribute read with offset bluez always replies the whole value despite a user specify the offset. This patch fixes the issue. Reviewed-by: sonnysasaka@chromium.org --- src/gatt-client.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gatt-client.c b/src/gatt-client.c index 0cf5324ff..bec6e1ec0 100644 --- a/src/gatt-client.c +++ b/src/gatt-client.c @@ -368,7 +368,8 @@ static void desc_read_cb(bool success, uint8_t att_ecode, } /* Read the stored data from db */ - if (!gatt_db_attribute_read(desc->attr, 0, 0, NULL, read_op_cb, op)) { + if (!gatt_db_attribute_read(desc->attr, op->offset, 0, NULL, read_op_cb, + op)) { error("Failed to read database"); att_ecode = BT_ATT_ERROR_UNLIKELY; goto fail; @@ -906,7 +907,8 @@ static void chrc_read_cb(bool success, uint8_t att_ecode, const uint8_t *value, } /* Read the stored data from db */ - if (!gatt_db_attribute_read(chrc->attr, 0, 0, NULL, read_op_cb, op)) { + if (!gatt_db_attribute_read(chrc->attr, op->offset, 0, NULL, read_op_cb, + op)) { error("Failed to read database"); att_ecode = BT_ATT_ERROR_UNLIKELY; goto fail; -- 2.47.3