P2P: Drop pending TX frame on new p2p_connect
We need to drop the pending frame to avoid issues with the new GO Negotiation, e.g., when the pending frame was from a previous attempt at starting a GO Negotiation.
This commit is contained in:
parent
7e3c178142
commit
f44ae20783
1 changed files with 15 additions and 0 deletions
|
@ -932,6 +932,19 @@ int p2p_connect(struct p2p_data *p2p, const u8 *peer_addr,
|
|||
if (p2p->state != P2P_IDLE)
|
||||
p2p_stop_find(p2p);
|
||||
|
||||
if (p2p->after_scan_tx) {
|
||||
/*
|
||||
* We need to drop the pending frame to avoid issues with the
|
||||
* new GO Negotiation, e.g., when the pending frame was from a
|
||||
* previous attempt at starting a GO Negotiation.
|
||||
*/
|
||||
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Dropped "
|
||||
"previous pending Action frame TX that was waiting "
|
||||
"for p2p_scan completion");
|
||||
os_free(p2p->after_scan_tx);
|
||||
p2p->after_scan_tx = NULL;
|
||||
}
|
||||
|
||||
dev->wps_method = wps_method;
|
||||
dev->status = P2P_SC_SUCCESS;
|
||||
|
||||
|
@ -1869,6 +1882,8 @@ void p2p_flush(struct p2p_data *p2p)
|
|||
p2p_device_free(p2p, dev);
|
||||
}
|
||||
p2p_free_sd_queries(p2p);
|
||||
os_free(p2p->after_scan_tx);
|
||||
p2p->after_scan_tx = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue