summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-hci.c
diff options
context:
space:
mode:
authorCidorvan Leite <cidorvan.leite@openbossa.org>2008-03-13 22:06:43 +0000
committerCidorvan Leite <cidorvan.leite@openbossa.org>2008-03-13 22:06:43 +0000
commitff296428a08dee619db1cc702146faefa91087fa (patch)
tree636ecaeb32212bf3a08f9c64010a943eedbde062 /hcid/dbus-hci.c
parenteda0dd9fa1dbb5b69fd6318ee6c5fe36bf544582 (diff)
Created devices from linkkeys
Diffstat (limited to 'hcid/dbus-hci.c')
-rw-r--r--hcid/dbus-hci.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c
index c1faa4a8..52d7342e 100644
--- a/hcid/dbus-hci.c
+++ b/hcid/dbus-hci.c
@@ -572,7 +572,8 @@ int hcid_dbus_unregister_device(uint16_t id)
return ret;
}
-static void create_stored_device(char *key, char *value, void *user_data)
+static void create_stored_device_from_profiles(char *key, char *value,
+ void *user_data)
{
struct adapter *adapter = user_data;
GSList *uuids = bt_string2list(value);
@@ -583,15 +584,33 @@ static void create_stored_device(char *key, char *value, void *user_data)
adapter->devices = g_slist_append(adapter->devices, device);
}
+static void create_stored_device_from_linkkeys(char *key, char *value,
+ void *user_data)
+{
+ struct adapter *adapter = user_data;
+ struct device *device;
+
+ if (g_slist_find_custom(adapter->devices,
+ key, (GCompareFunc) device_address_cmp))
+ return;
+
+ device = device_create(connection, adapter, key, NULL);
+ if (device)
+ adapter->devices = g_slist_append(adapter->devices, device);
+}
+
static void register_devices(bdaddr_t *src, struct adapter *adapter)
{
char filename[PATH_MAX + 1];
char addr[18];
ba2str(src, addr);
+
create_name(filename, PATH_MAX, STORAGEDIR, addr, "profiles");
+ textfile_foreach(filename, create_stored_device_from_profiles, adapter);
- textfile_foreach(filename, create_stored_device, adapter);
+ create_name(filename, PATH_MAX, STORAGEDIR, addr, "linkkeys");
+ textfile_foreach(filename, create_stored_device_from_linkkeys, adapter);
}
int hcid_dbus_start_device(uint16_t id)