From bdc460370a84197cf8bde083470729cde15de600 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 1 Jul 2014 10:34:00 +0300 Subject: [PATCH] core: Don't call Add Device from adapter_connect_list_add --- src/adapter.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 30d24c332..7e182f388 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -3040,6 +3040,14 @@ int adapter_connect_list_add(struct btd_adapter *adapter, if (device == adapter->connect_le) adapter->connect_le = NULL; + /* + * If kernel background scanning is supported then the + * adapter_auto_connect_add() function is used to maintain what to + * connect. + */ + if (kernel_bg_scan) + return 0; + if (g_slist_find(adapter->connect_list, device)) { DBG("ignoring already added device %s", device_get_path(device)); @@ -3056,25 +3064,6 @@ int adapter_connect_list_add(struct btd_adapter *adapter, DBG("%s added to %s's connect_list", device_get_path(device), adapter->system_name); - if (kernel_bg_scan) { - struct mgmt_cp_add_device cp; - const bdaddr_t *bdaddr; - uint8_t bdaddr_type; - - bdaddr = device_get_address(device); - bdaddr_type = btd_device_get_bdaddr_type(device); - - memset(&cp, 0, sizeof(cp)); - bacpy(&cp.addr.bdaddr, bdaddr); - cp.addr.type = bdaddr_type; - cp.action = 0x01; - - if (mgmt_send(adapter->mgmt, MGMT_OP_ADD_DEVICE, - adapter->dev_id, sizeof(cp), &cp, - NULL, NULL, NULL) > 0) - return 0; - } - done: if (!(adapter->current_settings & MGMT_SETTING_POWERED)) return 0; -- 2.47.3