diff --git a/src/gatt-database.c b/src/gatt-database.c
index 7b3ec16..88627ac 100644
--- a/src/gatt-database.c
+++ b/src/gatt-database.c
struct pending_op {
struct btd_device *device;
unsigned int id;
+ uint16_t offset;
struct gatt_db_attribute *attrib;
struct queue *owner_queue;
struct iovec data;
static struct pending_op *pending_read_new(struct btd_device *device,
struct queue *owner_queue,
struct gatt_db_attribute *attrib,
- unsigned int id)
+ unsigned int id, uint16_t offset)
{
struct pending_op *op;
op->device = device;
op->attrib = attrib;
op->id = id;
+ op->offset = offset;
queue_push_tail(owner_queue, op);
return op;
const char *path = device_get_path(op->device);
dict_append_entry(iter, "device", DBUS_TYPE_OBJECT_PATH, &path);
+ if (op->offset)
+ dict_append_entry(iter, "offset", DBUS_TYPE_UINT16,
+ &op->offset);
}
static void read_setup_cb(DBusMessageIter *iter, void *user_data)
struct gatt_db_attribute *attrib,
GDBusProxy *proxy,
struct queue *owner_queue,
- unsigned int id)
+ unsigned int id,
+ uint16_t offset)
{
struct pending_op *op;
- op = pending_read_new(device, owner_queue, attrib, id);
+ op = pending_read_new(device, owner_queue, attrib, id, offset);
if (g_dbus_proxy_method_call(proxy, "ReadValue", read_setup_cb,
read_reply_cb, op, pending_op_free) == TRUE)
goto fail;
}
- if (send_read(device, attrib, desc->proxy, desc->pending_reads, id))
+ if (send_read(device, attrib, desc->proxy, desc->pending_reads, id,
+ offset))
return;
fail:
goto fail;
}
- if (send_read(device, attrib, chrc->proxy, chrc->pending_reads, id))
+ if (send_read(device, attrib, chrc->proxy, chrc->pending_reads, id,
+ offset))
return;
fail: