[PATCH BlueZ v1] test-vcp: Fix CCC value endianness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>

CCC value is 2 octects long so it needs to be converted using
cpu_to_le16 in order to not fail in Big Endian architectures.
---
 unit/test-vcp.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/unit/test-vcp.c b/unit/test-vcp.c
index ea1bc98766dd..2a08dca480b9 100644
--- a/unit/test-vcp.c
+++ b/unit/test-vcp.c
@@ -130,18 +130,10 @@ static void gatt_notify_cb(struct gatt_db_attribute *attrib,
 					struct bt_att *att, void *user_data)
 {
 	struct test_data *data = user_data;
-	struct notify notify;
-
-	memset(&notify, 0, sizeof(notify));
-
-	notify.handle = gatt_db_attribute_get_handle(attrib);
-	notify.ccc_handle = gatt_db_attribute_get_handle(ccc);
-	notify.value = (void *) value;
-	notify.len = len;
+	uint16_t handle = gatt_db_attribute_get_handle(attrib);
 
 	if (!bt_gatt_server_send_notification(data->server,
-			notify.handle, notify.value,
-			notify.len, false))
+			handle, value, len, false))
 		printf("%s: Failed to send notification\n", __func__);
 }
 
@@ -154,8 +146,7 @@ static void gatt_ccc_read_cb(struct gatt_db_attribute *attrib,
 	struct ccc_state *ccc;
 	uint16_t handle;
 	uint8_t ecode = 0;
-	const uint8_t *value = NULL;
-	size_t len = 0;
+	uint16_t value = 0;
 
 	handle = gatt_db_attribute_get_handle(attrib);
 
@@ -165,11 +156,11 @@ static void gatt_ccc_read_cb(struct gatt_db_attribute *attrib,
 		goto done;
 	}
 
-	len = sizeof(ccc->value);
-	value = (void *) &ccc->value;
+	value = cpu_to_le16(ccc->value);
 
 done:
-	gatt_db_attribute_read_result(attrib, id, ecode, value, len);
+	gatt_db_attribute_read_result(attrib, id, ecode, (void *)&value,
+							sizeof(value));
 }
 
 static void test_server(const void *user_data)
-- 
2.43.0





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux