void wpa_supplicant_ap_deinit(struct wpa_supplicant *wpa_s) { #ifdef CONFIG_WPS eloop_cancel_timeout(wpas_wps_ap_pin_timeout, wpa_s, NULL); #endif /* CONFIG_WPS */ if (wpa_s->ap_iface == NULL) return; wpa_s->current_ssid = NULL; wpa_s->assoc_freq = 0; #ifdef CONFIG_P2P if (wpa_s->ap_iface->bss) wpa_s->ap_iface->bss[0]->p2p_group = NULL; wpas_p2p_group_deinit(wpa_s); #endif /* CONFIG_P2P */ hostapd_interface_deinit(wpa_s->ap_iface); hostapd_interface_free(wpa_s->ap_iface); wpa_s->ap_iface = NULL; wpa_drv_deinit_ap(wpa_s); }
void wpa_supplicant_ap_deinit(struct wpa_supplicant *wpa_s) { #ifdef CONFIG_WPS eloop_cancel_timeout(wpas_wps_ap_pin_timeout, wpa_s, NULL); #endif /* CONFIG_WPS */ if (wpa_s->ap_iface == NULL) return; wpa_s->current_ssid = NULL; eapol_sm_notify_config(wpa_s->eapol, NULL, NULL); wpa_s->assoc_freq = 0; wpas_p2p_ap_deinit(wpa_s); wpa_s->ap_iface->driver_ap_teardown = !!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_AP_TEARDOWN_SUPPORT); hostapd_interface_deinit(wpa_s->ap_iface); hostapd_interface_free(wpa_s->ap_iface); wpa_s->ap_iface = NULL; wpa_drv_deinit_ap(wpa_s); wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_DISCONNECTED "bssid=" MACSTR " reason=%d locally_generated=1", MAC2STR(wpa_s->own_addr), WLAN_REASON_DEAUTH_LEAVING); }