diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2013-11-13 02:45:01 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-11-13 02:45:01 -0800 |
| commit | 8847c21a912a7b59df48e20448dff70544afdfcd (patch) | |
| tree | 618e1f36e4379826840b2a212e65b81a8f74df81 | |
| parent | f1d9d0c7b321d5658302d25e7f0b759424c6d5c6 (diff) | |
| parent | 145a29ad3f3484b952bafcc5c453dd857345b5b4 (diff) | |
| download | android_external_wpa_supplicant_8-8847c21a912a7b59df48e20448dff70544afdfcd.tar.gz android_external_wpa_supplicant_8-8847c21a912a7b59df48e20448dff70544afdfcd.tar.bz2 android_external_wpa_supplicant_8-8847c21a912a7b59df48e20448dff70544afdfcd.zip | |
Merge "eap_proxy: Re-read IMSI from proxy in Interworking functionality"
| -rw-r--r-- | wpa_supplicant/interworking.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/wpa_supplicant/interworking.c b/wpa_supplicant/interworking.c index 36f75a16..4c699378 100644 --- a/wpa_supplicant/interworking.c +++ b/wpa_supplicant/interworking.c @@ -18,6 +18,7 @@ #include "eap_common/eap_defs.h" #include "eap_peer/eap.h" #include "eap_peer/eap_methods.h" +#include "eapol_supp/eapol_supp_sm.h" #include "wpa_supplicant_i.h" #include "config.h" #include "config_ssid.h" @@ -1353,6 +1354,23 @@ static struct wpa_cred * interworking_credentials_available_3gpp( if (bss->anqp == NULL || bss->anqp->anqp_3gpp == NULL) return NULL; +#ifdef CONFIG_EAP_PROXY + if (!wpa_s->imsi[0]) { + size_t len; + wpa_printf(MSG_DEBUG, "Interworking: IMSI not available - try to read again through eap_proxy"); + wpa_s->mnc_len = eapol_sm_get_eap_proxy_imsi(wpa_s->eapol, + wpa_s->imsi, + &len); + if (wpa_s->mnc_len > 0) { + wpa_s->imsi[len] = '\0'; + wpa_printf(MSG_DEBUG, "eap_proxy: IMSI %s (MNC length %d)", + wpa_s->imsi, wpa_s->mnc_len); + } else { + wpa_printf(MSG_DEBUG, "eap_proxy: IMSI not available"); + } + } +#endif /* CONFIG_EAP_PROXY */ + for (cred = wpa_s->conf->cred; cred; cred = cred->next) { char *sep; const char *imsi; |
