P2P: Fix ignoring of PD Response due to dialog token mismatch
Commit 6b56cc2d97
added clearing of the
p2p->pending_action_state too early in this function. This should not
be done if we are going to silently ignore the frame due to dialog
token mismatch. Fix this by moving the code around to check the dialog
token first.
This issue resulted in PD Request retries getting stopped too early if
the peer is sending out an unexpected PD Response (e.g., because of it
being excessively slow with the response so that the response is
received only after the next TX attempt with a new dialog token).
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
83218d20dd
commit
213c1fa84d
1 changed files with 5 additions and 5 deletions
|
@ -278,11 +278,6 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
|||
return;
|
||||
}
|
||||
|
||||
if (p2p->pending_action_state == P2P_PENDING_PD) {
|
||||
os_memset(p2p->pending_pd_devaddr, 0, ETH_ALEN);
|
||||
p2p->pending_action_state = P2P_NO_PENDING_ACTION;
|
||||
}
|
||||
|
||||
if (dev->dialog_token != msg.dialog_token) {
|
||||
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
|
||||
"P2P: Ignore Provision Discovery Response with "
|
||||
|
@ -292,6 +287,11 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
|||
return;
|
||||
}
|
||||
|
||||
if (p2p->pending_action_state == P2P_PENDING_PD) {
|
||||
os_memset(p2p->pending_pd_devaddr, 0, ETH_ALEN);
|
||||
p2p->pending_action_state = P2P_NO_PENDING_ACTION;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the response is from the peer to whom a user initiated request
|
||||
* was sent earlier, we reset that state info here.
|
||||
|
|
Loading…
Reference in a new issue