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) | 
