aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <ricardo@cyngn.com>2016-04-04 20:32:15 +0100
committerRicardo Cerqueira <ricardo@cyngn.com>2016-07-01 11:17:52 +0100
commita46cc719b5d14a91b4711aff5197edcf49b775e7 (patch)
tree86f4a447c7db0f04ed5749c7479a669fa6a53df7
parent94b7293f57f67e901d69388f9a021ffb61f688be (diff)
downloadandroid_external_wpa_supplicant_8-a46cc719b5d14a91b4711aff5197edcf49b775e7.tar.gz
android_external_wpa_supplicant_8-a46cc719b5d14a91b4711aff5197edcf49b775e7.tar.bz2
android_external_wpa_supplicant_8-a46cc719b5d14a91b4711aff5197edcf49b775e7.zip
eap: Don't force reassociation when getting the identity and handshakes are in progress
This creates a race-condition between credentials management and association, often kicking the connection state into a loop. This does not apply if the EAP connection is proxied. Change-Id: Ie43612c6112438dbdacad2a0f585c11674f5b53d
-rw-r--r--wpa_supplicant/wpa_supplicant.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 7852268a..f93e0f6c 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -5403,7 +5403,11 @@ int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s,
eap->identity = (u8 *) os_strdup(value);
eap->identity_len = os_strlen(value);
eap->pending_req_identity = 0;
- if (ssid == wpa_s->current_ssid)
+ if (ssid == wpa_s->current_ssid
+#ifndef CONFIG_EAP_PROXY
+ && wpa_s->wpa_state < WPA_ASSOCIATING
+#endif
+ )
wpa_s->reassociate = 1;
break;
case WPA_CTRL_REQ_EAP_PASSWORD: