]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Do not allow pending listen command override connect
authorJouni Malinen <jouni@qca.qualcomm.com>
Wed, 21 Dec 2011 11:35:18 +0000 (13:35 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 21 Dec 2011 11:35:18 +0000 (13:35 +0200)
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 <jouni@qca.qualcomm.com>

src/p2p/p2p.c

index c0009ce74288c204a70f74d485367a80aa0f9be8..9fcc6ca39d538a653738022479d9590b3584c431 100644 (file)
@@ -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;