From a13e07ec4dbb91bacbd224bf3ccc67542b807889 Mon Sep 17 00:00:00 2001 From: Eyal Shapira Date: Mon, 13 Aug 2012 21:48:55 +0300 Subject: [PATCH] Fix adding extra IEs in sched scan Refactoring done in commit 46ee0427b13d64dc4695fda24f4f228c99822c11 (IEEE 802.11u: Allow Interworking and HESSID to be configured) broke adding extra IEs in sched scan. The IEs stopped being added to the scan params within wpa_supplicant_extra_ies() but no code was added to add them in wpa_supplicant_req_sched_scan(). Fix this and remove unused params arg in wpa_supplicant_extra_ies(). Signed-hostap: Eyal Shapira intended-for: hostap-1 --- wpa_supplicant/scan.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index 94cab3131..c608c3877 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -380,9 +380,7 @@ static void wpas_add_interworking_elements(struct wpa_supplicant *wpa_s, #endif /* CONFIG_INTERWORKING */ -static struct wpabuf * -wpa_supplicant_extra_ies(struct wpa_supplicant *wpa_s, - struct wpa_driver_scan_params *params) +static struct wpabuf * wpa_supplicant_extra_ies(struct wpa_supplicant *wpa_s) { struct wpabuf *extra_ie = NULL; #ifdef CONFIG_WPS @@ -635,7 +633,7 @@ ssid_list_set: #endif /* CONFIG_P2P */ wpa_supplicant_optimize_freqs(wpa_s, ¶ms); - extra_ie = wpa_supplicant_extra_ies(wpa_s, ¶ms); + extra_ie = wpa_supplicant_extra_ies(wpa_s); #ifdef CONFIG_HS20 if (wpa_s->conf->hs20 && wpabuf_resize(&extra_ie, 6) == 0) @@ -763,7 +761,7 @@ int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s) struct wpa_driver_scan_params *scan_params; enum wpa_states prev_state; struct wpa_ssid *ssid = NULL; - struct wpabuf *wps_ie = NULL; + struct wpabuf *extra_ie = NULL; int ret; unsigned int max_sched_scan_ssids; int wildcard = 0; @@ -925,8 +923,11 @@ int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s) params.filter_ssids = NULL; } - if (wpa_s->wps) - wps_ie = wpa_supplicant_extra_ies(wpa_s, ¶ms); + extra_ie = wpa_supplicant_extra_ies(wpa_s); + if (extra_ie) { + params.extra_ies = wpabuf_head(extra_ie); + params.extra_ies_len = wpabuf_len(extra_ie); + } scan_params = ¶ms; @@ -943,7 +944,7 @@ scan: ret = wpa_supplicant_start_sched_scan(wpa_s, scan_params, wpa_s->sched_scan_interval); - wpabuf_free(wps_ie); + wpabuf_free(extra_ie); os_free(params.filter_ssids); if (ret) { wpa_msg(wpa_s, MSG_WARNING, "Failed to initiate sched scan");