From 32f71969913113bd25cc738f8edf2c1699964aa8 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Thu, 4 Mar 2021 14:20:31 -0800 Subject: [PATCH] adapter: Return Busy error when setting is pending This returns an error if application attempts to change a property that is pending. Fixes: https://github.com/bluez/bluez/issues/99 Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- src/adapter.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/adapter.c b/src/adapter.c index 08c6ed4..8ffefff 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -7015,12 +7015,18 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting, dbus_message_iter_get_basic(value, &enable); + if (adapter->pending_settings & setting) { + g_dbus_pending_property_error(id, ERROR_INTERFACE ".Busy", + NULL); + return; + } + if (adapter->current_settings & setting) current_enable = TRUE; else current_enable = FALSE; - if (enable == current_enable || adapter->pending_settings & setting) { + if (enable == current_enable) { g_dbus_pending_property_success(id); return; } -- 2.7.4