Lines Matching refs:anqp
523 static struct nai_realm * nai_realm_parse(struct wpabuf *anqp, u16 *count) in nai_realm_parse() argument
530 if (anqp == NULL) in nai_realm_parse()
532 left = wpabuf_len(anqp); in nai_realm_parse()
536 pos = wpabuf_head_u8(anqp); in nai_realm_parse()
730 static int plmn_id_match(struct wpabuf *anqp, const char *imsi, int mnc_len) in plmn_id_match() argument
756 if (anqp == NULL) in plmn_id_match()
758 pos = wpabuf_head_u8(anqp); in plmn_id_match()
759 end = pos + wpabuf_len(anqp); in plmn_id_match()
978 if (bss->anqp == NULL || bss->anqp->anqp_3gpp == NULL) in interworking_connect_3gpp()
1119 static int roaming_consortium_anqp_match(const struct wpabuf *anqp, in roaming_consortium_anqp_match() argument
1125 if (anqp == NULL) in roaming_consortium_anqp_match()
1128 pos = wpabuf_head(anqp); in roaming_consortium_anqp_match()
1129 end = pos + wpabuf_len(anqp); in roaming_consortium_anqp_match()
1145 static int roaming_consortium_match(const u8 *ie, const struct wpabuf *anqp, in roaming_consortium_match() argument
1149 roaming_consortium_anqp_match(anqp, rc_id, rc_len); in roaming_consortium_match()
1154 const struct wpabuf *anqp, in cred_roaming_consortiums_match() argument
1160 if (roaming_consortium_match(ie, anqp, in cred_roaming_consortiums_match()
1180 (bss->anqp == NULL || bss->anqp->roaming_consortium == NULL)) in cred_no_required_oi_match()
1184 bss->anqp ? in cred_no_required_oi_match()
1185 bss->anqp->roaming_consortium : NULL, in cred_no_required_oi_match()
1226 if (bss->anqp == NULL || bss->anqp->hs20_wan_metrics == NULL) in cred_below_min_backhaul()
1229 wan = wpabuf_head(bss->anqp->hs20_wan_metrics); in cred_below_min_backhaul()
1251 res = interworking_home_sp_cred(wpa_s, cred, bss->anqp ? in cred_below_min_backhaul()
1252 bss->anqp->domain_name : NULL); in cred_below_min_backhaul()
1283 res = interworking_home_sp_cred(wpa_s, cred, bss->anqp ? in cred_over_max_bss_load()
1284 bss->anqp->domain_name : NULL); in cred_over_max_bss_load()
1334 if (bss->anqp == NULL || bss->anqp->hs20_connection_capability == NULL) in cred_conn_capab_missing()
1338 res = interworking_home_sp_cred(wpa_s, cred, bss->anqp ? in cred_conn_capab_missing()
1339 bss->anqp->domain_name : NULL); in cred_conn_capab_missing()
1343 capab = wpabuf_head(bss->anqp->hs20_connection_capability); in cred_conn_capab_missing()
1344 end = capab + wpabuf_len(bss->anqp->hs20_connection_capability); in cred_conn_capab_missing()
1374 const struct wpabuf *anqp; in interworking_credentials_available_roaming_consortium() local
1378 anqp = bss->anqp ? bss->anqp->roaming_consortium : NULL; in interworking_credentials_available_roaming_consortium()
1380 if (!ie && !anqp) in interworking_credentials_available_roaming_consortium()
1392 !roaming_consortium_match(ie, anqp, in interworking_credentials_available_roaming_consortium()
1395 !cred_roaming_consortiums_match(ie, anqp, cred)) in interworking_credentials_available_roaming_consortium()
1562 const struct wpabuf *anqp; in interworking_connect_roaming_consortium() local
1594 anqp = bss->anqp ? bss->anqp->roaming_consortium : NULL; in interworking_connect_roaming_consortium()
1595 for (i = 0; (ie || anqp) && i < cred->num_roaming_consortiums; i++) { in interworking_connect_roaming_consortium()
1597 ie, anqp, cred->roaming_consortiums[i], in interworking_connect_roaming_consortium()
1757 realm = nai_realm_parse(bss->anqp ? bss->anqp->nai_realm : NULL, in interworking_connect()
1934 if (bss->anqp == NULL || bss->anqp->anqp_3gpp == NULL) { in interworking_credentials_available_3gpp()
1937 bss->anqp, bss->anqp ? bss->anqp->anqp_3gpp : NULL); in interworking_credentials_available_3gpp()
2010 ret = plmn_id_match(bss->anqp->anqp_3gpp, imsi, mnc_len); in interworking_credentials_available_3gpp()
2058 if (bss->anqp == NULL || bss->anqp->nai_realm == NULL) in interworking_credentials_available_realm()
2066 realm = nai_realm_parse(bss->anqp->nai_realm, &count); in interworking_credentials_available_realm()
2349 if (bss->anqp == NULL || bss->anqp->domain_name == NULL) { in roaming_prio()
2354 if (interworking_home_sp_cred(wpa_s, cred, bss->anqp->domain_name) > 0) in roaming_prio()
2362 bss->anqp->domain_name)) { in roaming_prio()
2463 res = interworking_home_sp(wpa_s, bss->anqp ? in interworking_select_network()
2464 bss->anqp->domain_name : NULL); in interworking_select_network()
2598 if (other->anqp == NULL) in interworking_match_anqp_info()
2600 if (other->anqp->roaming_consortium == NULL && in interworking_match_anqp_info()
2601 other->anqp->nai_realm == NULL && in interworking_match_anqp_info()
2602 other->anqp->anqp_3gpp == NULL && in interworking_match_anqp_info()
2603 other->anqp->domain_name == NULL) in interworking_match_anqp_info()
2617 other->anqp->users++; in interworking_match_anqp_info()
2618 return other->anqp; in interworking_match_anqp_info()
2658 if (bss->anqp == NULL) { in interworking_next_anqp_fetch()
2659 bss->anqp = interworking_match_anqp_info(wpa_s, in interworking_next_anqp_fetch()
2661 if (bss->anqp) { in interworking_next_anqp_fetch()
2665 bss->anqp = wpa_bss_anqp_alloc(); in interworking_next_anqp_fetch()
2666 if (bss->anqp == NULL) in interworking_next_anqp_fetch()
2814 struct wpa_bss_anqp *anqp, u16 info_id, in anqp_add_extra() argument
2819 if (!anqp) in anqp_add_extra()
2822 dl_list_for_each(tmp, &anqp->anqp_elems, struct wpa_bss_anqp_elem, in anqp_add_extra()
2835 dl_list_add(&anqp->anqp_elems, &elem->list); in anqp_add_extra()
2880 struct wpa_bss_anqp *anqp = NULL; in interworking_parse_rx_anqp_resp() local
2884 anqp = bss->anqp; in interworking_parse_rx_anqp_resp()
2892 if (anqp) { in interworking_parse_rx_anqp_resp()
2893 wpabuf_free(anqp->capability_list); in interworking_parse_rx_anqp_resp()
2894 anqp->capability_list = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2901 if (anqp) { in interworking_parse_rx_anqp_resp()
2902 wpabuf_free(anqp->venue_name); in interworking_parse_rx_anqp_resp()
2903 anqp->venue_name = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2912 if (anqp) { in interworking_parse_rx_anqp_resp()
2913 wpabuf_free(anqp->network_auth_type); in interworking_parse_rx_anqp_resp()
2914 anqp->network_auth_type = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2922 if (anqp) { in interworking_parse_rx_anqp_resp()
2923 wpabuf_free(anqp->roaming_consortium); in interworking_parse_rx_anqp_resp()
2924 anqp->roaming_consortium = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2933 if (anqp) { in interworking_parse_rx_anqp_resp()
2934 wpabuf_free(anqp->ip_addr_type_availability); in interworking_parse_rx_anqp_resp()
2935 anqp->ip_addr_type_availability = in interworking_parse_rx_anqp_resp()
2943 if (anqp) { in interworking_parse_rx_anqp_resp()
2944 wpabuf_free(anqp->nai_realm); in interworking_parse_rx_anqp_resp()
2945 anqp->nai_realm = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2953 if (anqp) { in interworking_parse_rx_anqp_resp()
2954 wpabuf_free(anqp->anqp_3gpp); in interworking_parse_rx_anqp_resp()
2955 anqp->anqp_3gpp = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2962 if (anqp) { in interworking_parse_rx_anqp_resp()
2963 wpabuf_free(anqp->domain_name); in interworking_parse_rx_anqp_resp()
2964 anqp->domain_name = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2973 if (anqp) { in interworking_parse_rx_anqp_resp()
2974 wpabuf_free(anqp->fils_realm_info); in interworking_parse_rx_anqp_resp()
2975 anqp->fils_realm_info = wpabuf_alloc_copy(pos, slen); in interworking_parse_rx_anqp_resp()
2982 anqp_add_extra(wpa_s, anqp, info_id, pos, slen); in interworking_parse_rx_anqp_resp()
3036 anqp_add_extra(wpa_s, anqp, info_id, data, slen); in interworking_parse_rx_anqp_resp()
3130 wpas_notify_anqp_query_done(wpa_s, dst, anqp_result, bss ? bss->anqp : NULL); in anqp_resp_cb()