P2P: Stop p2p_listen/find on wpas_p2p_invite
authorIlan Peer <ilan.peer@intel.com>
Mon, 19 Jan 2015 01:44:12 +0000 (20:44 -0500)
committerJouni Malinen <j@w1.fi>
Mon, 19 Jan 2015 23:57:59 +0000 (01:57 +0200)
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 <ilan.peer@intel.com>
wpa_supplicant/p2p_supplicant.c

index 72d6873..4364a06 100644 (file)
@@ -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);