Lines Matching full:query
103 static void hostapd_acl_query_free(struct hostapd_acl_query_data *query)
105 if (!query)
107 os_free(query->auth_msg);
108 os_free(query->anonce);
109 os_free(query->eapol);
110 os_free(query);
116 struct hostapd_acl_query_data *query)
121 query->radius_id = radius_client_get_id(hapd->radius);
122 msg = radius_msg_new(RADIUS_CODE_ACCESS_REQUEST, query->radius_id);
168 if (query->akm &&
170 wpa_akm_to_suite(query->akm))) {
175 if (query->anonce &&
179 query->anonce, WPA_NONCE_LEN)) {
184 if (query->eapol &&
188 query->eapol, query->eapol_len)) {
244 * @is_probe_req: Whether this query for a Probe Request frame
266 struct hostapd_acl_query_data *query;
285 query = hapd->acl_queries;
286 while (query) {
287 if (ether_addr_equal(query->addr, addr)) {
288 /* pending query in RADIUS retransmit queue;
292 query = query->next;
298 /* No entry in the cache - query external RADIUS server */
299 query = os_zalloc(sizeof(*query));
300 if (!query) {
301 wpa_printf(MSG_ERROR, "malloc for query data failed");
304 os_get_reltime(&query->timestamp);
305 os_memcpy(query->addr, addr, ETH_ALEN);
306 if (hostapd_radius_acl_query(hapd, addr, query)) {
308 "Failed to send Access-Request for ACL query.");
309 hostapd_acl_query_free(query);
313 query->auth_msg = os_memdup(msg, len);
314 if (!query->auth_msg) {
317 hostapd_acl_query_free(query);
320 query->auth_msg_len = len;
321 query->next = hapd->acl_queries;
322 hapd->acl_queries = query;
376 wpa_printf(MSG_DEBUG, "ACL query for " MACSTR
482 * Returns: RADIUS_RX_PROCESSED if RADIUS message was a reply to ACL query (and
491 struct hostapd_acl_query_data *query, *prev;
496 query = hapd->acl_queries;
498 while (query) {
499 if (query->radius_id == hdr->identifier)
501 prev = query;
502 query = query->next;
504 if (!query)
509 query->radius_id);
522 "Unknown RADIUS message code %d to ACL query",
534 os_memcpy(cache->addr, query->addr, sizeof(cache->addr));
554 MAC2STR(query->addr));
586 hostapd_logger(hapd, query->addr,
602 if (query->radius_psk) {
607 sta = ap_get_sta(hapd, query->addr);
623 hostapd_drv_set_radius_acl_auth(hapd, query->addr,
631 "Re-sending authentication frame after successful RADIUS ACL query");
632 ieee802_11_mgmt(hapd, query->auth_msg, query->auth_msg_len,
640 hapd->acl_queries = query->next;
642 prev->next = query->next;
644 hostapd_acl_query_free(query);
674 struct hostapd_acl_query_data *query, *prev;
681 query = hapd->acl_queries;
683 while (query) {
684 prev = query;
685 query = query->next;
725 struct hostapd_acl_query_data *query;
727 query = os_zalloc(sizeof(*query));
728 if (!query)
731 query->radius_psk = true;
732 query->akm = key_mgmt;
733 os_get_reltime(&query->timestamp);
734 os_memcpy(query->addr, addr, ETH_ALEN);
736 query->anonce = os_memdup(anonce, WPA_NONCE_LEN);
738 query->eapol = os_memdup(eapol, eapol_len);
739 query->eapol_len = eapol_len;
741 if (hostapd_radius_acl_query(hapd, addr, query)) {
743 "Failed to send Access-Request for RADIUS PSK/ACL query");
744 hostapd_acl_query_free(query);
748 query->next = hapd->acl_queries;
749 hapd->acl_queries = query;