aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/interworking.c
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2013-06-19 15:42:17 (GMT)
committerJouni Malinen <j@w1.fi>2013-06-19 15:42:17 (GMT)
commitec7b97ab0000785df2c12bdf814a57214f9486ed (patch)
treed77c830baa28fc7fb680b201473c69f1e6cc01e4 /wpa_supplicant/interworking.c
parent4331263b7395ea2286b740dd89a17f8240e171f6 (diff)
downloadhostap-ec7b97ab0000785df2c12bdf814a57214f9486ed.zip
hostap-ec7b97ab0000785df2c12bdf814a57214f9486ed.tar.gz
hostap-ec7b97ab0000785df2c12bdf814a57214f9486ed.tar.bz2
Interworking: Add support for using eap_proxy offload
Fetch IMSI through eap_proxy for Interworking network selection if needed. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'wpa_supplicant/interworking.c')
-rw-r--r--wpa_supplicant/interworking.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/wpa_supplicant/interworking.c b/wpa_supplicant/interworking.c
index e35628b..2f35240 100644
--- a/wpa_supplicant/interworking.c
+++ b/wpa_supplicant/interworking.c
@@ -1346,6 +1346,13 @@ static struct wpa_cred * interworking_credentials_available_3gpp(
goto compare;
}
#endif /* PCSC_FUNCS */
+#ifdef CONFIG_EAP_PROXY
+ if (cred->pcsc && wpa_s->mnc_len > 0 && wpa_s->imsi[0]) {
+ imsi = wpa_s->imsi;
+ mnc_len = wpa_s->mnc_len;
+ goto compare;
+ }
+#endif /* CONFIG_EAP_PROXY */
if (cred->imsi == NULL || !cred->imsi[0] ||
cred->milenage == NULL || !cred->milenage[0])
@@ -1358,9 +1365,9 @@ static struct wpa_cred * interworking_credentials_available_3gpp(
mnc_len = sep - cred->imsi - 3;
imsi = cred->imsi;
-#ifdef PCSC_FUNCS
+#if defined(PCSC_FUNCS) || defined(CONFIG_EAP_PROXY)
compare:
-#endif /* PCSC_FUNCS */
+#endif /* PCSC_FUNCS || CONFIG_EAP_PROXY */
wpa_printf(MSG_DEBUG, "Interworking: Parsing 3GPP info from "
MACSTR, MAC2STR(bss->bssid));
ret = plmn_id_match(bss->anqp->anqp_3gpp, imsi, mnc_len);