What do you think about this patch? I saw that this was still pending
while my other related ones have been merged. I'm not sure if you'd like
some changes or if it simply fell through the cracks.
Regards,
Ludovico de Nittis
On 1/28/25 12:56 PM, Ludovico de Nittis wrote:
If setting WakeAllowed, or the device privacy, fails, we may end up in a
situation where `pending_flags` is still set to some `DEVICE_FLAG_*`
values, for example from `device_set_wake_allowed()` or
`adapter_set_device_flags()`.
This can confuse further requests because they'll assume that there is
still a pending request in progress.
---
src/adapter.c | 1 +
src/device.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/adapter.c b/src/adapter.c
index 5d4117a49..3eb343cbc 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -5580,6 +5580,7 @@ static void set_device_privacy_complete(uint8_t status, uint16_t length,
if (status != MGMT_STATUS_SUCCESS) {
error("Set device flags return status: %s",
mgmt_errstr(status));
+ btd_device_set_pending_flags(dev, 0);
return;
}
diff --git a/src/device.c b/src/device.c
index e8bff718c..3c2337198 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1575,6 +1575,7 @@ static void set_wake_allowed_complete(uint8_t status, uint16_t length,
dev->wake_id = -1U;
}
dev->pending_wake_allowed = FALSE;
+ dev->pending_flags = 0;
return;
}