From 7617388ea3547ff59bdef70c5cb2591a951acd11 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Tue, 29 Oct 2013 13:51:18 +0200 Subject: [PATCH] Interworking: Report STATUS:sp_type even if domain is not configured This allows sp_type={home,roaming,unknown} to be used to determine network type with SIM-based credentials even if the domain name parameter is not configured explicitly. Signed-hostap: Jouni Malinen --- wpa_supplicant/ctrl_iface.c | 4 +--- wpa_supplicant/interworking.c | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 809ae0c2e..801399f7e 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -1569,10 +1569,8 @@ static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s, if (wpa_s->current_ssid->parent_cred != cred) continue; - if (!cred->domain) - continue; - for (i = 0; i < cred->num_domain; i++) { + for (i = 0; cred->domain && i < cred->num_domain; i++) { ret = os_snprintf(pos, end - pos, "home_sp=%s\n", cred->domain[i]); diff --git a/wpa_supplicant/interworking.c b/wpa_supplicant/interworking.c index 9e040a0db..067b3bd43 100644 --- a/wpa_supplicant/interworking.c +++ b/wpa_supplicant/interworking.c @@ -1550,6 +1550,7 @@ int interworking_home_sp_cred(struct wpa_supplicant *wpa_s, struct wpabuf *domain_names) { size_t i; + int ret = -1; #ifdef INTERWORKING_3GPP char nai[100], *realm; @@ -1580,11 +1581,13 @@ int interworking_home_sp_cred(struct wpa_supplicant *wpa_s, if (realm && domain_name_list_contains(domain_names, realm)) return 1; + if (realm) + ret = 0; } #endif /* INTERWORKING_3GPP */ if (domain_names == NULL || cred->domain == NULL) - return 0; + return ret; for (i = 0; i < cred->num_domain; i++) { wpa_printf(MSG_DEBUG, "Interworking: Search for match with "