static void wlantest_deinit(struct wlantest *wt) { struct wlantest_passphrase *p, *pn; struct wlantest_radius_secret *s, *sn; struct wlantest_radius *r, *rn; struct wlantest_pmk *pmk, *np; struct wlantest_wep *wep, *nw; if (wt->ctrl_sock >= 0) ctrl_deinit(wt); if (wt->monitor_sock >= 0) monitor_deinit(wt); bss_flush(wt); dl_list_for_each_safe(p, pn, &wt->passphrase, struct wlantest_passphrase, list) passphrase_deinit(p); dl_list_for_each_safe(s, sn, &wt->secret, struct wlantest_radius_secret, list) secret_deinit(s); dl_list_for_each_safe(r, rn, &wt->radius, struct wlantest_radius, list) radius_deinit(r); dl_list_for_each_safe(pmk, np, &wt->pmk, struct wlantest_pmk, list) pmk_deinit(pmk); dl_list_for_each_safe(wep, nw, &wt->wep, struct wlantest_wep, list) os_free(wep); write_pcap_deinit(wt); }
void bss_deinit(struct wlantest_bss *bss) { struct wlantest_sta *sta, *n; struct wlantest_pmk *pmk, *np; struct wlantest_tdls *tdls, *nt; dl_list_for_each_safe(sta, n, &bss->sta, struct wlantest_sta, list) sta_deinit(sta); dl_list_for_each_safe(pmk, np, &bss->pmk, struct wlantest_pmk, list) pmk_deinit(pmk); dl_list_for_each_safe(tdls, nt, &bss->tdls, struct wlantest_tdls, list) tdls_deinit(tdls); dl_list_del(&bss->list); os_free(bss); }