diff --git a/src/gatt-client.c b/src/gatt-client.c
index 4f70aa7..1cd7fbc 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
struct queue *services;
struct queue *all_notify_clients;
+ struct queue *ios;
};
struct service {
"NotifyAcquired");
}
+ queue_push_tail(chrc->service->client->ios, io);
+
DBG("%s: sender %s io %p", dbus_message_get_member(msg),
dbus_message_get_sender(msg), io);
client = new0(struct btd_gatt_client, 1);
client->services = queue_new();
client->all_notify_clients = queue_new();
+ client->ios = queue_new();
client->device = device;
ba2str(device_get_address(device), client->devaddr);
queue_destroy(client->services, unregister_service);
queue_destroy(client->all_notify_clients, NULL);
+ queue_destroy(client->ios, NULL);
bt_gatt_client_unref(client->gatt);
gatt_db_unref(client->db);
free(client);
DBG("Device disconnected. Cleaning up.");
+ queue_remove_all(client->ios, NULL, NULL,
+ (queue_destroy_func_t) io_shutdown);
+
/*
* TODO: Once GATT over BR/EDR is properly supported, we should pass the
* correct bdaddr_type based on the transport over which GATT is being