static void rx_anqp_hs_query_list(struct hostapd_data *hapd, u8 subtype, struct anqp_query_info *qi) { switch (subtype) { case HS20_STYPE_CAPABILITY_LIST: set_anqp_req(ANQP_REQ_HS_CAPABILITY_LIST, "HS Capability List", 1, 0, 0, qi); break; case HS20_STYPE_OPERATOR_FRIENDLY_NAME: set_anqp_req(ANQP_REQ_OPERATOR_FRIENDLY_NAME, "Operator Friendly Name", hapd->conf->hs20_operator_friendly_name != NULL, hapd->anqp_type_mask, hapd->operator_friendly_name_delay, qi); break; case HS20_STYPE_WAN_METRICS: set_anqp_req(ANQP_REQ_WAN_METRICS, "WAN Metrics", hapd->conf->hs20_wan_metrics != NULL, hapd->anqp_type_mask, hapd->wan_metrics_delay, qi); break; case HS20_STYPE_CONNECTION_CAPABILITY: set_anqp_req(ANQP_REQ_CONNECTION_CAPABILITY, "Connection Capability", hapd->conf->hs20_connection_capability != NULL, hapd->anqp_type_mask, hapd->connection_capability_delay, qi); break; case HS20_STYPE_OPERATING_CLASS: set_anqp_req(ANQP_REQ_OPERATING_CLASS, "Operating Class", hapd->conf->hs20_operating_class != NULL, hapd->anqp_type_mask, hapd->operating_class_delay, qi); break; default: wpa_printf(MSG_DEBUG, "ANQP: Unsupported HS 2.0 subtype %u", subtype); break; } }
static void rx_anqp_query_list_id(struct hostapd_data *hapd, u16 info_id, struct anqp_query_info *qi) { switch (info_id) { case ANQP_CAPABILITY_LIST: set_anqp_req(ANQP_REQ_CAPABILITY_LIST, "Capability List", 1, 0, 0, qi); break; case ANQP_VENUE_NAME: set_anqp_req(ANQP_REQ_VENUE_NAME, "Venue Name", hapd->conf->venue_name != NULL, 0, 0, qi); break; case ANQP_NETWORK_AUTH_TYPE: set_anqp_req(ANQP_REQ_NETWORK_AUTH_TYPE, "Network Auth Type", hapd->conf->network_auth_type != NULL, 0, 0, qi); break; case ANQP_ROAMING_CONSORTIUM: set_anqp_req(ANQP_REQ_ROAMING_CONSORTIUM, "Roaming Consortium", hapd->conf->roaming_consortium != NULL, 0, 0, qi); break; case ANQP_IP_ADDR_TYPE_AVAILABILITY: set_anqp_req(ANQP_REQ_IP_ADDR_TYPE_AVAILABILITY, "IP Addr Type Availability", hapd->conf->ipaddr_type_configured, 0, 0, qi); break; case ANQP_NAI_REALM: set_anqp_req(ANQP_REQ_NAI_REALM, "NAI Realm", hapd->conf->nai_realm_data != NULL, 0, 0, qi); break; case ANQP_3GPP_CELLULAR_NETWORK: set_anqp_req(ANQP_REQ_3GPP_CELLULAR_NETWORK, "3GPP Cellular Network", hapd->conf->anqp_3gpp_cell_net != NULL, 0, 0, qi); break; case ANQP_DOMAIN_NAME: set_anqp_req(ANQP_REQ_DOMAIN_NAME, "Domain Name", hapd->conf->domain_name != NULL, 0, 0, qi); break; default: wpa_printf(MSG_DEBUG, "ANQP: Unsupported Info Id %u", info_id); break; } }
static void rx_anqp_query_list_id(struct hostapd_data *hapd, u16 info_id, struct anqp_query_info *qi) { switch (info_id) { case ANQP_CAPABILITY_LIST: set_anqp_req(ANQP_REQ_CAPABILITY_LIST, "Capability List", 1, qi); break; case ANQP_VENUE_NAME: set_anqp_req(ANQP_REQ_VENUE_NAME, "Venue Name", hapd->conf->venue_name != NULL, qi); break; case ANQP_EMERGENCY_CALL_NUMBER: set_anqp_req(ANQP_REQ_EMERGENCY_CALL_NUMBER, "Emergency Call Number", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_NETWORK_AUTH_TYPE: set_anqp_req(ANQP_REQ_NETWORK_AUTH_TYPE, "Network Auth Type", hapd->conf->network_auth_type != NULL, qi); break; case ANQP_ROAMING_CONSORTIUM: set_anqp_req(ANQP_REQ_ROAMING_CONSORTIUM, "Roaming Consortium", hapd->conf->roaming_consortium != NULL, qi); break; case ANQP_IP_ADDR_TYPE_AVAILABILITY: set_anqp_req(ANQP_REQ_IP_ADDR_TYPE_AVAILABILITY, "IP Addr Type Availability", hapd->conf->ipaddr_type_configured, qi); break; case ANQP_NAI_REALM: set_anqp_req(ANQP_REQ_NAI_REALM, "NAI Realm", hapd->conf->nai_realm_data != NULL, qi); break; case ANQP_3GPP_CELLULAR_NETWORK: set_anqp_req(ANQP_REQ_3GPP_CELLULAR_NETWORK, "3GPP Cellular Network", hapd->conf->anqp_3gpp_cell_net != NULL, qi); break; case ANQP_AP_GEOSPATIAL_LOCATION: set_anqp_req(ANQP_REQ_AP_GEOSPATIAL_LOCATION, "AP Geospatial Location", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_AP_CIVIC_LOCATION: set_anqp_req(ANQP_REQ_AP_CIVIC_LOCATION, "AP Civic Location", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_AP_LOCATION_PUBLIC_URI: set_anqp_req(ANQP_REQ_AP_LOCATION_PUBLIC_URI, "AP Location Public URI", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_DOMAIN_NAME: set_anqp_req(ANQP_REQ_DOMAIN_NAME, "Domain Name", hapd->conf->domain_name != NULL, qi); break; case ANQP_EMERGENCY_ALERT_URI: set_anqp_req(ANQP_REQ_EMERGENCY_ALERT_URI, "Emergency Alert URI", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_TDLS_CAPABILITY: set_anqp_req(ANQP_REQ_TDLS_CAPABILITY, "TDLS Capability", get_anqp_elem(hapd, info_id) != NULL, qi); break; case ANQP_EMERGENCY_NAI: set_anqp_req(ANQP_REQ_EMERGENCY_NAI, "Emergency NAI", get_anqp_elem(hapd, info_id) != NULL, qi); break; default: if (!get_anqp_elem(hapd, info_id)) { wpa_printf(MSG_DEBUG, "ANQP: Unsupported Info Id %u", info_id); break; } if (qi->num_extra_req == ANQP_MAX_EXTRA_REQ) { wpa_printf(MSG_DEBUG, "ANQP: No more room for extra requests - ignore Info Id %u", info_id); break; } wpa_printf(MSG_DEBUG, "ANQP: Info Id %u (local)", info_id); qi->extra_req[qi->num_extra_req] = info_id; qi->num_extra_req++; break; } }