]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Continue p2p_find after sending non-success Invitation Response
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 7 Apr 2016 18:05:28 +0000 (21:05 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 7 Apr 2016 18:05:28 +0000 (21:05 +0300)
This was previously handled for the case where the non-success
Invitation Response frame was sent out during the Listen phase. However,
in the case the Action frame TX ended up getting scheduled when the
Search phase scan had already started (e.g., due to the driver reporting
Invitation Request RX late enough for the Listen-to-Search transition
having already started), the postponed Action frame TX status processing
did not cover the specific case of non-success Invitation Response. This
could result in the p2p_find operation getting stopped (stuck in SEARCH
state) unexpectedly.

Fix this by calling p2p_check_after_scan_tx_continuation() from
Invitation Response TX callback handler if the invitation was rejected.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/p2p/p2p.c

index 6942c85175ecbf37bf4cf15ca5e0d0f8a40bd835..a209a56da486328247aaa6a28a44ba2bf7542888 100644 (file)
@@ -3782,6 +3782,8 @@ void p2p_send_action_cb(struct p2p_data *p2p, unsigned int freq, const u8 *dst,
                break;
        case P2P_PENDING_INVITATION_RESPONSE:
                p2p_invitation_resp_cb(p2p, success);
+               if (p2p->inv_status != P2P_SC_SUCCESS)
+                       p2p_check_after_scan_tx_continuation(p2p);
                break;
        case P2P_PENDING_DEV_DISC_REQUEST:
                p2p_dev_disc_req_cb(p2p, success);