Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
bluez.16863
0001-core-Fixes-order-InterfaceAdded.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-core-Fixes-order-InterfaceAdded.patch of Package bluez.16863
From 1873096352f518d3247f8efb3c2e0aa8804e50ac Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Date: Wed, 7 Feb 2018 09:35:07 -0200 Subject: [PATCH] core: Fixes order InterfaceAdded Registering on the callback of MGMT_OP_READ_ADV_FEATURES causes InterfacesAdded to be reschedule after the device objects which causes tools such as PulseAudio to consider it invalid. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1534857 --- src/advertising.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/advertising.c b/src/advertising.c index 94a8c4050..970c3d87b 100644 --- a/src/advertising.c +++ b/src/advertising.c @@ -1032,14 +1032,6 @@ static void read_adv_features_callback(uint8_t status, uint16_t length, if (manager->max_ads == 0) return; - if (!g_dbus_register_interface(btd_get_dbus_connection(), - adapter_get_path(manager->adapter), - LE_ADVERTISING_MGR_IFACE, methods, - NULL, properties, manager, NULL)) { - error("Failed to register " LE_ADVERTISING_MGR_IFACE); - return; - } - /* Reset existing instances */ if (feat->num_instances) remove_advertising(manager, 0); @@ -1061,19 +1053,29 @@ static struct btd_adv_manager *manager_create(struct btd_adapter *adapter) } manager->mgmt_index = btd_adapter_get_index(adapter); + manager->clients = queue_new(); + manager->supported_flags = MGMT_ADV_FLAG_LOCAL_NAME; + + if (!g_dbus_register_interface(btd_get_dbus_connection(), + adapter_get_path(manager->adapter), + LE_ADVERTISING_MGR_IFACE, methods, + NULL, properties, manager, NULL)) { + error("Failed to register " LE_ADVERTISING_MGR_IFACE); + goto fail; + } if (!mgmt_send(manager->mgmt, MGMT_OP_READ_ADV_FEATURES, manager->mgmt_index, 0, NULL, read_adv_features_callback, manager, NULL)) { error("Failed to read advertising features"); - manager_destroy(manager); - return NULL; + goto fail; } - manager->clients = queue_new(); - manager->supported_flags = MGMT_ADV_FLAG_LOCAL_NAME; - return manager; + +fail: + manager_destroy(manager); + return NULL; } struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter) -- 2.16.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor