From f863d0116d6271585c2521ff18447c95d95f82fd Mon Sep 17 00:00:00 2001 From: Benedek Kupper Date: Thu, 22 Aug 2024 13:32:26 +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. Fixes: https://github.com/bluez/bluez/issues/1022 --- src/gatt-client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gatt-client.c b/src/gatt-client.c index 8d83a9577..a67e04eee 100644 --- a/src/gatt-client.c +++ b/src/gatt-client.c @@ -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.47.3