diff --git a/src/adapter.c b/src/adapter.c
index 21911fb..1af3f67 100644
--- a/src/adapter.c
+++ b/src/adapter.c
return NULL;
}
-void adapter_connect_list_add(struct btd_adapter *adapter,
+int adapter_connect_list_add(struct btd_adapter *adapter,
struct btd_device *device)
{
struct session_req *req;
if (g_slist_find(adapter->connect_list, device)) {
DBG("ignoring already added device %s",
device_get_path(device));
- return;
+ return 0;
+ }
+
+ if (!(adapter->supported_settings & MGMT_SETTING_LE)) {
+ error("Can't add %s to non-LE capable adapter connect list",
+ device_get_path(device));
+ return -ENOTSUP;
}
adapter->connect_list = g_slist_append(adapter->connect_list,
adapter->system_name);
if (!(adapter->current_settings & MGMT_SETTING_POWERED))
- return;
+ return 0;
if (adapter->scanning_session)
- return;
+ return 0;
if (adapter->discov_sessions == NULL)
adapter->discov_id = g_idle_add(discovery_cb, adapter);
req = create_session(adapter, NULL, SESSION_TYPE_DISC_LE_SCAN, NULL);
adapter->discov_sessions = g_slist_append(adapter->discov_sessions, req);
adapter->scanning_session = req;
+
+ return 0;
}
void adapter_connect_list_remove(struct btd_adapter *adapter,
diff --git a/src/adapter.h b/src/adapter.h
index 5c53b4a..6e1ba9d 100644
--- a/src/adapter.h
+++ b/src/adapter.h
bool btd_adapter_ssp_enabled(struct btd_adapter *adapter);
-void adapter_connect_list_add(struct btd_adapter *adapter,
- struct btd_device *device);
+int adapter_connect_list_add(struct btd_adapter *adapter,
+ struct btd_device *device);
void adapter_connect_list_remove(struct btd_adapter *adapter,
struct btd_device *device);