P2P: Cancel group formation timeout on client connection
It was possiblle for the group formation timeout to be left running even after the P2P Client connected to the group if the WPS provisioning step was not completed cleanly (e.g., due to WSC_Done not getting received from the client). There is no need to remove the group in such case due to the initial group formation timeout, so work around this by removing that timeout on data connection. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
00eb299396
commit
eab2b50dc8
1 changed files with 10 additions and 0 deletions
|
@ -5945,6 +5945,16 @@ struct wpa_ssid * wpas_p2p_get_persistent(struct wpa_supplicant *wpa_s,
|
|||
void wpas_p2p_notify_ap_sta_authorized(struct wpa_supplicant *wpa_s,
|
||||
const u8 *addr)
|
||||
{
|
||||
if (eloop_cancel_timeout(wpas_p2p_group_formation_timeout,
|
||||
wpa_s->parent, NULL) > 0) {
|
||||
/*
|
||||
* This can happen if WPS provisioning step is not terminated
|
||||
* cleanly (e.g., P2P Client does not send WSC_Done). Since the
|
||||
* peer was able to connect, there is no need to time out group
|
||||
* formation after this, though.
|
||||
*/
|
||||
wpa_printf(MSG_DEBUG, "P2P: Workaround - cancelled P2P group formation timeout on data connection");
|
||||
}
|
||||
wpa_s->global->p2p_go_wait_client.sec = 0;
|
||||
if (addr == NULL)
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue