GList *ioreq_list;
guint presence_timeout;
+ guint dep_timer;
};
struct near_adapter_ioreq {
if (adapter->presence_timeout > 0)
g_source_remove(adapter->presence_timeout);
+ if (adapter->dep_timer > 0)
+ g_source_remove(adapter->dep_timer);
+
g_free(adapter->name);
g_free(adapter->path);
g_hash_table_destroy(adapter->tags);
return FALSE;
}
+static gboolean dep_timer(gpointer user_data)
+{
+ struct near_adapter *adapter = user_data;
+
+ DBG("");
+
+ if (adapter == NULL)
+ return FALSE;
+
+ adapter_start_poll(adapter);
+
+ return FALSE;
+}
+
static void tag_present_cb(uint32_t adapter_idx, uint32_t target_idx,
int status)
{
target_idx = __neard_device_get_idx(adapter->device_link);
__near_adapter_remove_target(idx, target_idx);
} else {
+ if (adapter->dep_timer > 0)
+ g_source_remove(adapter->dep_timer);
+
__near_adapter_devices_changed(idx);
}
if (err < 0)
adapter->device_link = NULL;
+ DBG("Starting DEP timer");
+
+ adapter->dep_timer = g_timeout_add_seconds(1, dep_timer, adapter);
+
return err;
}