X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fscan.c;h=56f062f56b42b01787858d71d039109ce1baf0cd;hb=d1f9c410c1ba8b8d007c53a01da7aa2eae4d81c9;hp=819061f8342aea87592bbcc3198321574fa37932;hpb=9ba9fa07cc35c3c62916e528785002c7898ae5d7;p=mech_eap.git diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index 819061f..56f062f 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -460,6 +460,25 @@ static int wpa_scan_get_max_rate(const struct wpa_scan_res *res) } +const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie) +{ + const u8 *end, *pos; + + pos = (const u8 *) (res + 1); + end = pos + res->ie_len; + + while (pos + 1 < end) { + if (pos + 2 + pos[1] > end) + break; + if (pos[0] == ie) + return pos; + pos += 2 + pos[1]; + } + + return NULL; +} + + const u8 * wpa_scan_get_vendor_ie(const struct wpa_scan_res *res, u32 vendor_type) { @@ -610,3 +629,17 @@ int wpa_supplicant_update_scan_results(struct wpa_supplicant *wpa_s) return 0; } + + +void wpa_scan_results_free(struct wpa_scan_results *res) +{ + size_t i; + + if (res == NULL) + return; + + for (i = 0; i < res->num; i++) + os_free(res->res[i]); + os_free(res->res); + os_free(res); +}