diff options
author | Cidorvan Leite <cidorvan.leite@openbossa.org> | 2008-03-13 22:06:43 +0000 |
---|---|---|
committer | Cidorvan Leite <cidorvan.leite@openbossa.org> | 2008-03-13 22:06:43 +0000 |
commit | ff296428a08dee619db1cc702146faefa91087fa (patch) | |
tree | 636ecaeb32212bf3a08f9c64010a943eedbde062 /hcid/dbus-hci.c | |
parent | eda0dd9fa1dbb5b69fd6318ee6c5fe36bf544582 (diff) |
Created devices from linkkeys
Diffstat (limited to 'hcid/dbus-hci.c')
-rw-r--r-- | hcid/dbus-hci.c | 23 |
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) |