diff --git a/src/adapter.c b/src/adapter.c
index a920b21..d597025 100644
--- a/src/adapter.c
+++ b/src/adapter.c
return addr_type;
}
+static void probe_devices(void *user_data)
+{
+ struct btd_device *device = user_data;
+
+ device_probe_profiles(device, btd_device_get_uuids(device));
+}
+
static void load_devices(struct btd_adapter *adapter)
{
char dirname[PATH_MAX];
GSList *ltks = NULL;
GSList *irks = NULL;
GSList *params = NULL;
+ GSList *added_devices = NULL;
DIR *dir;
struct dirent *entry;
/* TODO: register services from pre-loaded list of primaries */
- list = btd_device_get_uuids(device);
- if (list)
- device_probe_profiles(device, list);
+ added_devices = g_slist_append(added_devices, device);
device_exist:
if (key_info) {
g_slist_free_full(irks, g_free);
load_conn_params(adapter, params);
g_slist_free_full(params, g_free);
+
+ g_slist_free_full(added_devices, probe_devices);
}
int btd_adapter_block_address(struct btd_adapter *adapter,