diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/adapter.c | 17 | ||||
| -rw-r--r-- | src/adapter.h | 1 | ||||
| -rw-r--r-- | src/dbus-hci.c | 21 | 
3 files changed, 19 insertions, 20 deletions
| diff --git a/src/adapter.c b/src/adapter.c index 24c1518d..0c85fe52 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2826,6 +2826,23 @@ int adapter_add_found_device(struct adapter *adapter, bdaddr_t *bdaddr,  	return 0;  } +int adapter_remove_found_device(struct adapter *adapter, bdaddr_t *bdaddr) +{ +	struct remote_dev_info *dev, match; + +	memset(&match, 0, sizeof(struct remote_dev_info)); +	bacpy(&match.bdaddr, bdaddr); + +	dev = adapter_search_found_devices(adapter, &match); +	if (!dev) +		return -1; + +	adapter->found_devices = g_slist_remove(adapter->found_devices, dev); +	g_free(dev); + +	return 0; +} +  int btd_register_adapter_driver(struct btd_adapter_driver *driver)  {  	adapter_drivers = g_slist_append(adapter_drivers, driver); diff --git a/src/adapter.h b/src/adapter.h index 0e2dbdb6..dfc377ed 100644 --- a/src/adapter.h +++ b/src/adapter.h @@ -176,6 +176,7 @@ struct remote_dev_info *adapter_search_found_devices(struct adapter *adapter,  						struct remote_dev_info *match);  int adapter_add_found_device(struct adapter *adapter, bdaddr_t *bdaddr,  				int8_t rssi, name_status_t name_status); +int adapter_remove_found_device(struct adapter *adapter, bdaddr_t *bdaddr);  struct btd_adapter_driver {  	const char *name; diff --git a/src/dbus-hci.c b/src/dbus-hci.c index b79318d2..f0129005 100644 --- a/src/dbus-hci.c +++ b/src/dbus-hci.c @@ -110,25 +110,6 @@ int found_device_cmp(const struct remote_dev_info *d1,  	return 0;  } -static int found_device_remove(GSList **list, bdaddr_t *bdaddr) -{ -	struct remote_dev_info *dev, match; -	GSList *l; - -	memset(&match, 0, sizeof(struct remote_dev_info)); -	bacpy(&match.bdaddr, bdaddr); - -	l = g_slist_find_custom(*list, &match, (GCompareFunc) found_device_cmp); -	if (!l) -		return -1; - -	dev = l->data; -	*list = g_slist_remove(*list, dev); -	g_free(dev); - -	return 0; -} -  int active_conn_find_by_bdaddr(const void *data, const void *user_data)  {  	const struct active_conn_info *con = data; @@ -1311,7 +1292,7 @@ void hcid_dbus_remote_name(bdaddr_t *local, bdaddr_t *peer, uint8_t status,  	}  	/* remove from remote name request list */ -	found_device_remove(&adapter->found_devices, peer); +	adapter_remove_found_device(adapter, peer);  	/* check if there is more devices to request names */  	if (!found_device_req_name(adapter)) | 
