diff options
| author | Jouni Malinen <jouni@qca.qualcomm.com> | 2013-10-04 13:08:38 +0530 |
|---|---|---|
| committer | Deepthi Gowri <deepthi@codeaurora.org> | 2013-10-04 19:07:08 +0530 |
| commit | 05e3dd4de12248a8f859e9202d6aa5c7e640bf28 (patch) | |
| tree | 162d0b3e0c08e1ab6c4e9af9a3a3c613d4fdf3c3 | |
| parent | bc0a8cab332310f20107556f3ede419fe0126660 (diff) | |
| download | android_external_wpa_supplicant_8-05e3dd4de12248a8f859e9202d6aa5c7e640bf28.tar.gz android_external_wpa_supplicant_8-05e3dd4de12248a8f859e9202d6aa5c7e640bf28.tar.bz2 android_external_wpa_supplicant_8-05e3dd4de12248a8f859e9202d6aa5c7e640bf28.zip | |
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.
CRs-Fixed: 538026
Git-commit: eab2b50dc83e1d14dcb573dfc9b10fc6a9cb1cdd
Git-repo: git://w1.fi/srv/git/hostap.git
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Change-Id: I15e65a8e2436db5c408d5960bff6ba7af16f62c1
| -rw-r--r-- | wpa_supplicant/p2p_supplicant.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 7216c3aa..ab164f64 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5832,6 +5832,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; |
