From 348feb005a12b0c0db20e5276f5142fb8ff3bd3d 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 --- src/adapter.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/adapter.c b/src/adapter.c index f483cc827..cc0849f99 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2880,12 +2880,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.47.3