diff --git a/src/adapter.c b/src/adapter.c
index 1920c23..e74a350 100644
--- a/src/adapter.c
+++ b/src/adapter.c
struct agent *agent; /* NULL for queued auths */
};
-struct discovery {
- GSList *found;
-};
-
struct btd_adapter {
int ref_count;
struct session_req *scanning_session;
GSList *connect_list; /* Devices to connect when found */
guint discov_id; /* Discovery timer */
- struct discovery *discovery; /* Discovery active */
+ GSList *discovery_found; /* Discovery found list */
gboolean connecting; /* Connect active */
guint waiting_to_connect; /* # of devices waiting to connect */
gboolean discov_suspended; /* Discovery suspended */
static void discovery_cleanup(struct btd_adapter *adapter)
{
- struct discovery *discovery = adapter->discovery;
-
- if (!discovery)
- return;
-
- adapter->discovery = NULL;
-
- g_slist_free_full(discovery->found, invalidate_rssi);
-
- g_free(discovery);
+ g_slist_free_full(adapter->discovery_found, invalidate_rssi);
+ adapter->discovery_found = NULL;
}
static int mgmt_stop_discovery(struct btd_adapter *adapter)
struct btd_device *dev,
gboolean remove_storage)
{
- struct discovery *discovery = adapter->discovery;
GList *l;
adapter->devices = g_slist_remove(adapter->devices, dev);
- if (discovery)
- discovery->found = g_slist_remove(discovery->found, dev);
+ adapter->discovery_found = g_slist_remove(adapter->discovery_found,
+ dev);
adapter->connections = g_slist_remove(adapter->connections, dev);
DBusMessageIter *iter, void *user_data)
{
struct btd_adapter *adapter = user_data;
- dbus_bool_t discovering = adapter->discovery ? TRUE : FALSE;
+ dbus_bool_t discovering = adapter->discovery_found ? TRUE : FALSE;
dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &discovering);
{
guint connect_list_len;
- if (discovering && !adapter->discovery)
- adapter->discovery = g_new0(struct discovery, 1);
-
g_dbus_emit_property_changed(dbus_conn, adapter->path,
ADAPTER_INTERFACE, "Discovering");
/* in the future we may want to check here if the controller supports
* scanning and connecting at the same time */
- if (adapter->discovery)
+ if (adapter->discovery_found)
return TRUE;
if (adapter->connecting)
bool confirm, bool legacy,
const uint8_t *data, uint8_t data_len)
{
- struct discovery *discovery = adapter->discovery;
struct btd_device *dev;
struct eir_data eir_data;
char addr[18];
int err;
GSList *l;
- if (!discovery) {
+ if (adapter->discovery_found) {
error("Device found event while no discovery in progress");
return;
}
eir_data_free(&eir_data);
- if (g_slist_find(discovery->found, dev))
+ if (g_slist_find(adapter->discovery_found, dev))
return;
if (confirm)
confirm_name(adapter, bdaddr, bdaddr_type,
device_name_known(dev));
- discovery->found = g_slist_prepend(discovery->found, dev);
+ adapter->discovery_found = g_slist_prepend(adapter->discovery_found,
+ dev);
if (device_is_le(dev) && g_slist_find(adapter->connect_list, dev)) {
adapter_connect_list_remove(adapter, dev);
/* check pending requests */
reply_pending_requests(adapter);
- if (adapter->discovery) {
+ if (adapter->discovery_found) {
emit_discovering = true;
session_stop_discovery(adapter);
}