From b72b2ad39e15f2844eb6e7b0464952a9f042152c Mon Sep 17 00:00:00 2001 From: Ilan Peer Date: Sun, 18 Jan 2015 20:44:12 -0500 Subject: [PATCH] P2P: Stop p2p_listen/find on wpas_p2p_invite Stop any ongoing P2P listen/find flow before starting invitation flow. This was partially handled in p2p_invite() that called p2p_find(), but this did not cleanly handle cases such as long_listen. Signed-off-by: Ilan Peer --- wpa_supplicant/p2p_supplicant.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 72d68730c..4364a0649 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -6177,6 +6177,12 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr, pref_freq = 0; } + /* + * Stop any find/listen operations before invitation and possibly + * connection establishment. + */ + wpas_p2p_stop_find_oper(wpa_s); + return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid, ssid->ssid, ssid->ssid_len, force_freq, go_dev_addr, 1, pref_freq, -1);