From d9bdba9f867577ed9da6df9c5c933033c71bcdf2 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 21 Dec 2011 13:35:18 +0200 Subject: [PATCH] P2P: Do not allow pending listen command override connect If p2p_listen is issued during a p2p_scan, a pending after-scan operation is scheduled. However, since there is support for only a single pending operation, this was able to override a previously scheduled pending connect command. This can break some command sequences, so give higher priority to pending connect operation. Signed-hostap: Jouni Malinen --- src/p2p/p2p.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index c0009ce74..9fcc6ca39 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -251,6 +251,12 @@ int p2p_listen(struct p2p_data *p2p, unsigned int timeout) p2p->pending_listen_usec = (timeout % 1000) * 1000; if (p2p->p2p_scan_running) { + if (p2p->start_after_scan == P2P_AFTER_SCAN_NOTHING) { + wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, + "P2P: p2p_scan running - connect is already " + "pending - skip listen"); + return 0; + } wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: p2p_scan running - delay start of listen state"); p2p->start_after_scan = P2P_AFTER_SCAN_LISTEN;