diff options
-rw-r--r-- | lib/bluetooth-client.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c index 0233537e..2a8db62f 100644 --- a/lib/bluetooth-client.c +++ b/lib/bluetooth-client.c @@ -758,18 +758,24 @@ object_manager_new_callback(GObject *source_object, GAsyncResult *res, void *user_data) { - BluetoothClient *client = BLUETOOTH_CLIENT (user_data); - BluetoothClientPrivate *priv = BLUETOOTH_CLIENT_GET_PRIVATE(client); + BluetoothClient *client; + BluetoothClientPrivate *priv; + GDBusObjectManager *manager; GList *object_list, *l; GError *error = NULL; - priv->manager = g_dbus_object_manager_client_new_for_bus_finish (res, &error); - if (error) { - g_warning ("Could not create bluez object manager: %s", error->message); + manager = g_dbus_object_manager_client_new_for_bus_finish (res, &error); + if (!manager) { + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_warning ("Could not create bluez object manager: %s", error->message); g_error_free (error); return; } + client = BLUETOOTH_CLIENT (user_data); + priv = BLUETOOTH_CLIENT_GET_PRIVATE(client); + priv->manager = manager; + g_signal_connect (G_OBJECT (priv->manager), "interface-added", (GCallback) interface_added, client); g_signal_connect (G_OBJECT (priv->manager), "interface-removed", (GCallback) interface_removed, client); |