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 <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2013-10-29 13:51:18 +02:00 committed by Jouni Malinen
parent c20bc9d464
commit 7617388ea3
2 changed files with 5 additions and 4 deletions

View file

@ -1569,10 +1569,8 @@ static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s,
if (wpa_s->current_ssid->parent_cred != cred) if (wpa_s->current_ssid->parent_cred != cred)
continue; 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, ret = os_snprintf(pos, end - pos,
"home_sp=%s\n", "home_sp=%s\n",
cred->domain[i]); cred->domain[i]);

View file

@ -1550,6 +1550,7 @@ int interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
struct wpabuf *domain_names) struct wpabuf *domain_names)
{ {
size_t i; size_t i;
int ret = -1;
#ifdef INTERWORKING_3GPP #ifdef INTERWORKING_3GPP
char nai[100], *realm; char nai[100], *realm;
@ -1580,11 +1581,13 @@ int interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
if (realm && if (realm &&
domain_name_list_contains(domain_names, realm)) domain_name_list_contains(domain_names, realm))
return 1; return 1;
if (realm)
ret = 0;
} }
#endif /* INTERWORKING_3GPP */ #endif /* INTERWORKING_3GPP */
if (domain_names == NULL || cred->domain == NULL) if (domain_names == NULL || cred->domain == NULL)
return 0; return ret;
for (i = 0; i < cred->num_domain; i++) { for (i = 0; i < cred->num_domain; i++) {
wpa_printf(MSG_DEBUG, "Interworking: Search for match with " wpa_printf(MSG_DEBUG, "Interworking: Search for match with "