Bluetooth: GATT: Pass data buffer as NULL if length is 0

So that application could check data pointer to see if any
data have been received and if read operation is complete.

Change-Id: I36c3ff81baefbc535374d937e5297938445eafa6
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This commit is contained in:
Mariusz Skamra 2016-11-04 12:18:08 +01:00 committed by Johan Hedberg
commit 748c00b31e

View file

@ -1346,7 +1346,7 @@ static void att_read_rsp(struct bt_conn *conn, uint8_t err, const void *pdu,
BT_DBG("err 0x%02x", err);
if (err) {
if (err || !length) {
params->func(conn, err, params, NULL, 0);
return;
}
@ -1355,11 +1355,6 @@ static void att_read_rsp(struct bt_conn *conn, uint8_t err, const void *pdu,
return;
}
/* Stop if no data left */
if (!length) {
return;
}
/*
* Core Spec 4.2, Vol. 3, Part G, 4.8.1
* If the Characteristic Value is greater than (ATT_MTU - 1) octets
@ -1408,17 +1403,13 @@ static void att_read_multiple_rsp(struct bt_conn *conn, uint8_t err,
BT_DBG("err 0x%02x", err);
if (err) {
if (err || !length) {
params->func(conn, err, params, NULL, 0);
return;
}
params->func(conn, 0, params, pdu, length);
if (!length) {
return;
}
/* mark read as complete since read multiple is single response */
params->func(conn, 0, params, NULL, 0);
}