diff --git a/src/adapter.c b/src/adapter.c
index a7ede7a..87c5617 100644
--- a/src/adapter.c
+++ b/src/adapter.c
return NULL;
}
+struct btd_adapter *btd_adapter_get_default(void)
+{
+ GList *list;
+
+ if (default_adapter_id < 0)
+ return NULL;
+
+ for (list = g_list_first(adapter_list); list;
+ list = g_list_next(list)) {
+ struct btd_adapter *adapter = list->data;
+
+ if (adapter->dev_id == default_adapter_id)
+ return adapter;
+ }
+
+ return NULL;
+}
+
+bool btd_adapter_is_default(struct btd_adapter *adapter)
+{
+ if (!adapter)
+ return false;
+
+ if (adapter->dev_id == default_adapter_id)
+ return true;
+
+ return false;
+}
+
static gboolean process_auth_queue(gpointer user_data);
static void dev_class_changed_callback(uint16_t index, uint16_t length,
struct btd_adapter *adapter_get_default(void)
{
- return adapter_find_by_id(default_adapter_id);
+ return btd_adapter_get_default();
}
void adapter_foreach(adapter_cb func, gpointer user_data)
if (default_adapter_id == adapter->dev_id || default_adapter_id < 0)
default_adapter_id = hci_get_route(NULL);
+ adapter_list = g_list_remove(adapter_list, adapter);
+
adapter_remove(adapter);
btd_adapter_unref(adapter);
diff --git a/src/adapter.h b/src/adapter.h
index 584806e..94625c0 100644
--- a/src/adapter.h
+++ b/src/adapter.h
struct btd_adapter;
+struct btd_adapter *btd_adapter_get_default(void);
+bool btd_adapter_is_default(struct btd_adapter *adapter);
+
typedef void (*adapter_cb) (struct btd_adapter *adapter, gpointer user_data);
typedef void (*oob_read_local_cb_t) (struct btd_adapter *adapter,