Message ID | 20220512005515.844857-1-luiz.dentz@gmail.com |
---|---|
State | New |
Headers | show |
Series | [BlueZ] gatt-db: Allow passing Characteristic Value to gatt_db_attribute_get_char_data | expand |
Hello: This patch was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Wed, 11 May 2022 17:55:14 -0700 you wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > > This makes gatt_db_attribute_get_char_data work with Characteristic > Value rather than only with Characteristic Declaration. > --- > src/shared/gatt-db.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) Here is the summary with links: - [BlueZ] gatt-db: Allow passing Characteristic Value to gatt_db_attribute_get_char_data https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=83497bbb307f You are awesome, thank you!
diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c index 4f5d10b57..d3b5cec1d 100644 --- a/src/shared/gatt-db.c +++ b/src/shared/gatt-db.c @@ -1528,7 +1528,7 @@ void gatt_db_service_foreach_char(struct gatt_db_attribute *attrib, gatt_db_service_foreach(attrib, &characteristic_uuid, func, user_data); } -static int gatt_db_attribute_get_index(struct gatt_db_attribute *attrib) +static int gatt_db_attribute_get_index(const struct gatt_db_attribute *attrib) { struct gatt_db_service *service; int index; @@ -1853,8 +1853,18 @@ bool gatt_db_attribute_get_char_data(const struct gatt_db_attribute *attrib, if (!attrib) return false; - if (bt_uuid_cmp(&characteristic_uuid, &attrib->uuid)) - return false; + if (bt_uuid_cmp(&characteristic_uuid, &attrib->uuid)) { + int index; + + /* Check if Characteristic Value was passed instead */ + index = gatt_db_attribute_get_index(attrib); + if (index < 0) + return NULL; + + attrib = attrib->service->attributes[index - 1]; + if (bt_uuid_cmp(&characteristic_uuid, &attrib->uuid)) + return false; + } /* * Characteristic declaration value:
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> This makes gatt_db_attribute_get_char_data work with Characteristic Value rather than only with Characteristic Declaration. --- src/shared/gatt-db.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)