prep_write_cb() calls gatt_db_attribure_write(), but does not pass data and data length. Fixed by passing pdu as data, and skipping the first 4 bytes. --- src/shared/gatt-server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/gatt-server.c b/src/shared/gatt-server.c index 0d9bb07..a235552 100644 --- a/src/shared/gatt-server.c +++ b/src/shared/gatt-server.c @@ -1312,7 +1312,7 @@ static void prep_write_cb(uint8_t opcode, const void *pdu, pwcd->length = length; pwcd->server = server; - status = gatt_db_attribute_write(attr, offset, NULL, 0, + status = gatt_db_attribute_write(attr, offset, pdu + 4, length - 4, BT_ATT_OP_PREP_WRITE_REQ, server->att, prep_write_complete_cb, pwcd); -- 2.19.1