FILS: Add Realm Information ANQP-element in BSS data
Add a named BSS command output entry for FILS Realm Information ANQP-element (anqp_fils_realm_info). Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
f82bc83264
commit
9cad618679
4 changed files with 17 additions and 0 deletions
|
@ -93,6 +93,7 @@ static struct wpa_bss_anqp * wpa_bss_anqp_clone(struct wpa_bss_anqp *anqp)
|
||||||
ANQP_DUP(nai_realm);
|
ANQP_DUP(nai_realm);
|
||||||
ANQP_DUP(anqp_3gpp);
|
ANQP_DUP(anqp_3gpp);
|
||||||
ANQP_DUP(domain_name);
|
ANQP_DUP(domain_name);
|
||||||
|
ANQP_DUP(fils_realm_info);
|
||||||
#endif /* CONFIG_INTERWORKING */
|
#endif /* CONFIG_INTERWORKING */
|
||||||
#ifdef CONFIG_HS20
|
#ifdef CONFIG_HS20
|
||||||
ANQP_DUP(hs20_capability_list);
|
ANQP_DUP(hs20_capability_list);
|
||||||
|
@ -168,6 +169,7 @@ static void wpa_bss_anqp_free(struct wpa_bss_anqp *anqp)
|
||||||
wpabuf_free(anqp->nai_realm);
|
wpabuf_free(anqp->nai_realm);
|
||||||
wpabuf_free(anqp->anqp_3gpp);
|
wpabuf_free(anqp->anqp_3gpp);
|
||||||
wpabuf_free(anqp->domain_name);
|
wpabuf_free(anqp->domain_name);
|
||||||
|
wpabuf_free(anqp->fils_realm_info);
|
||||||
|
|
||||||
while ((elem = dl_list_first(&anqp->anqp_elems,
|
while ((elem = dl_list_first(&anqp->anqp_elems,
|
||||||
struct wpa_bss_anqp_elem, list))) {
|
struct wpa_bss_anqp_elem, list))) {
|
||||||
|
|
|
@ -40,6 +40,7 @@ struct wpa_bss_anqp {
|
||||||
struct wpabuf *nai_realm;
|
struct wpabuf *nai_realm;
|
||||||
struct wpabuf *anqp_3gpp;
|
struct wpabuf *anqp_3gpp;
|
||||||
struct wpabuf *domain_name;
|
struct wpabuf *domain_name;
|
||||||
|
struct wpabuf *fils_realm_info;
|
||||||
struct dl_list anqp_elems; /* list of struct wpa_bss_anqp_elem */
|
struct dl_list anqp_elems; /* list of struct wpa_bss_anqp_elem */
|
||||||
#endif /* CONFIG_INTERWORKING */
|
#endif /* CONFIG_INTERWORKING */
|
||||||
#ifdef CONFIG_HS20
|
#ifdef CONFIG_HS20
|
||||||
|
|
|
@ -4381,6 +4381,8 @@ static int print_bss_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
|
||||||
pos = anqp_add_hex(pos, end, "anqp_3gpp", anqp->anqp_3gpp);
|
pos = anqp_add_hex(pos, end, "anqp_3gpp", anqp->anqp_3gpp);
|
||||||
pos = anqp_add_hex(pos, end, "anqp_domain_name",
|
pos = anqp_add_hex(pos, end, "anqp_domain_name",
|
||||||
anqp->domain_name);
|
anqp->domain_name);
|
||||||
|
pos = anqp_add_hex(pos, end, "anqp_fils_realm_info",
|
||||||
|
anqp->fils_realm_info);
|
||||||
#ifdef CONFIG_HS20
|
#ifdef CONFIG_HS20
|
||||||
pos = anqp_add_hex(pos, end, "hs20_capability_list",
|
pos = anqp_add_hex(pos, end, "hs20_capability_list",
|
||||||
anqp->hs20_capability_list);
|
anqp->hs20_capability_list);
|
||||||
|
|
|
@ -2893,6 +2893,18 @@ static void interworking_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
|
||||||
anqp->domain_name = wpabuf_alloc_copy(pos, slen);
|
anqp->domain_name = wpabuf_alloc_copy(pos, slen);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#ifdef CONFIG_FILS
|
||||||
|
case ANQP_FILS_REALM_INFO:
|
||||||
|
wpa_msg(wpa_s, MSG_INFO, RX_ANQP MACSTR
|
||||||
|
" FILS Realm Information", MAC2STR(sa));
|
||||||
|
wpa_hexdump_ascii(MSG_MSGDUMP, "ANQP: FILS Realm Information",
|
||||||
|
pos, slen);
|
||||||
|
if (anqp) {
|
||||||
|
wpabuf_free(anqp->fils_realm_info);
|
||||||
|
anqp->fils_realm_info = wpabuf_alloc_copy(pos, slen);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_FILS */
|
||||||
case ANQP_VENDOR_SPECIFIC:
|
case ANQP_VENDOR_SPECIFIC:
|
||||||
if (slen < 3)
|
if (slen < 3)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue