From 412a8a7b3f5b3cc3ef160f49648648a184210c18 Mon Sep 17 00:00:00 2001
From: Benedek Kupper <benedek.kupper@epitome.inc>
Date: Thu, 22 Aug 2024 11:36:51 +0200
Subject: [PATCH] gatt-client: allow AcquireNotify when characteristic has
indicate flag
StartNotify / StopNotify already correctly allows usage when the
characteristic indicate is present (simplify this check though),
apply the same to AcquireNotify.
---
src/gatt-client.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
@@ -1556,7 +1556,8 @@ static DBusMessage *characteristic_acquire_notify(DBusConnection *conn,
if (!queue_isempty(chrc->notify_clients))
return btd_error_in_progress(msg);
- if (!(chrc->props & BT_GATT_CHRC_PROP_NOTIFY))
+ if (!(chrc->props & (BT_GATT_CHRC_PROP_NOTIFY |
+ BT_GATT_CHRC_PROP_INDICATE)))
return btd_error_not_supported(msg);
client = notify_client_create(chrc, sender);
@@ -1601,8 +1602,8 @@ static DBusMessage *characteristic_start_notify(DBusConnection *conn,
if (chrc->notify_io)
return btd_error_not_permitted(msg, "Notify acquired");
- if (!(chrc->props & BT_GATT_CHRC_PROP_NOTIFY ||
- chrc->props & BT_GATT_CHRC_PROP_INDICATE))
+ if (!(chrc->props & (BT_GATT_CHRC_PROP_NOTIFY |
+ BT_GATT_CHRC_PROP_INDICATE)))
return btd_error_not_supported(msg);
/* Each client can only have one active notify session. */
--
2.34.1