Update p2p pending wifi device, if wifi is removed
as well. Such scenario occurs in a long delayed p2p
group negotiation.
---
plugins/wifi.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/plugins/wifi.c b/plugins/wifi.c
index bdb4c24..4424d95 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -196,6 +196,18 @@ static struct wifi_data *get_pending_wifi_data(const char
*ifname)
return NULL;
}
+static void remove_pending_wifi_device(struct wifi_data *wifi)
+{
+ GList *link;
+
+ link = g_list_find(pending_wifi_device, wifi);
+
+ if (!link)
+ return;
+
+ pending_wifi_device = g_list_delete_link(pending_wifi_device, link);
+}
+
static void peer_cancel_timeout(struct wifi_data *wifi)
{
if (wifi->p2p_connection_timeout > 0)
@@ -507,6 +519,8 @@ static void wifi_remove(struct connman_device *device)
check_p2p_technology();
+ remove_pending_wifi_device(wifi);
+
if (wifi->p2p_find_timeout) {
g_source_remove(wifi->p2p_find_timeout);
connman_device_unref(wifi->device);
--
1.9.1
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman