static void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, const char *reason) { if (wpa_s->last_scan_res) { unsigned int i; for (i = 0; i < wpa_s->last_scan_res_used; i++) { if (wpa_s->last_scan_res[i] == bss) { os_memmove(&wpa_s->last_scan_res[i], &wpa_s->last_scan_res[i + 1], (wpa_s->last_scan_res_used - i - 1) * sizeof(struct wpa_bss *)); wpa_s->last_scan_res_used--; break; } } } wpa_bss_update_pending_connect(wpa_s, bss, NULL); dl_list_del(&bss->list); dl_list_del(&bss->list_id); wpa_s->num_bss--; wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Remove id %u BSSID " MACSTR " SSID '%s' due to %s", bss->id, MAC2STR(bss->bssid), wpa_ssid_txt(bss->ssid, bss->ssid_len), reason); wpas_notify_bss_removed(wpa_s, bss->bssid, bss->id); wpa_bss_anqp_free(bss->anqp); os_free(bss); }
static void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) { dl_list_del(&bss->list); dl_list_del(&bss->list_id); wpa_s->num_bss--; wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Remove id %u BSSID " MACSTR " SSID '%s'", bss->id, MAC2STR(bss->bssid), wpa_ssid_txt(bss->ssid, bss->ssid_len)); wpas_notify_bss_removed(wpa_s, bss->bssid, bss->id); #ifdef CONFIG_INTERWORKING wpabuf_free(bss->anqp_venue_name); wpabuf_free(bss->anqp_network_auth_type); wpabuf_free(bss->anqp_roaming_consortium); wpabuf_free(bss->anqp_ip_addr_type_availability); wpabuf_free(bss->anqp_nai_realm); wpabuf_free(bss->anqp_3gpp); wpabuf_free(bss->anqp_domain_name); #endif /* CONFIG_INTERWORKING */ #ifdef CONFIG_HS20 wpabuf_free(bss->hs20_operator_friendly_name); wpabuf_free(bss->hs20_wan_metrics); wpabuf_free(bss->hs20_connection_capability); wpabuf_free(bss->hs20_operating_class); #endif /* CONFIG_HS20 */ os_free(bss); }
static void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) { dl_list_del(&bss->list); dl_list_del(&bss->list_id); wpa_s->num_bss--; wpa_printf(MSG_DEBUG, "BSS: Remove id %u BSSID " MACSTR " SSID '%s'", bss->id, MAC2STR(bss->bssid), wpa_ssid_txt(bss->ssid, bss->ssid_len)); wpas_notify_bss_removed(wpa_s, bss->bssid, bss->id); os_free(bss); }