void wpa_supplicant_mesh_iface_deinit(struct wpa_supplicant *wpa_s, struct hostapd_iface *ifmsh) { if (!ifmsh) return; if (ifmsh->mconf) { mesh_mpm_deinit(wpa_s, ifmsh); if (ifmsh->mconf->ies) { ifmsh->mconf->ies = NULL; /* We cannot free this struct * because wpa_authenticator on * hostapd side is also using it * for now just set to NULL and * let hostapd code free it. */ } os_free(ifmsh->mconf); ifmsh->mconf = NULL; } /* take care of shared data */ hostapd_interface_deinit(ifmsh); hostapd_interface_free(ifmsh); }
static void hostapd_interface_deinit_free(struct hostapd_iface *iface) { const struct wpa_driver_ops *driver; void *drv_priv; if (iface == NULL) return; driver = iface->bss[0]->driver; drv_priv = iface->bss[0]->drv_priv; hostapd_interface_deinit(iface); if (driver && driver->hapd_deinit) driver->hapd_deinit(drv_priv); hostapd_interface_free(iface); }
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); }