Fix adding extra IEs in sched scan

Refactoring done in commit 46ee0427b1
(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 <eyal@wizery.com>
intended-for: hostap-1
This commit is contained in:
Eyal Shapira 2012-08-13 21:48:55 +03:00 committed by Jouni Malinen
parent 1f52c2f7b5
commit a13e07ec4d

View file

@ -380,9 +380,7 @@ static void wpas_add_interworking_elements(struct wpa_supplicant *wpa_s,
#endif /* CONFIG_INTERWORKING */ #endif /* CONFIG_INTERWORKING */
static struct wpabuf * static struct wpabuf * wpa_supplicant_extra_ies(struct wpa_supplicant *wpa_s)
wpa_supplicant_extra_ies(struct wpa_supplicant *wpa_s,
struct wpa_driver_scan_params *params)
{ {
struct wpabuf *extra_ie = NULL; struct wpabuf *extra_ie = NULL;
#ifdef CONFIG_WPS #ifdef CONFIG_WPS
@ -635,7 +633,7 @@ ssid_list_set:
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
wpa_supplicant_optimize_freqs(wpa_s, &params); wpa_supplicant_optimize_freqs(wpa_s, &params);
extra_ie = wpa_supplicant_extra_ies(wpa_s, &params); extra_ie = wpa_supplicant_extra_ies(wpa_s);
#ifdef CONFIG_HS20 #ifdef CONFIG_HS20
if (wpa_s->conf->hs20 && wpabuf_resize(&extra_ie, 6) == 0) 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; struct wpa_driver_scan_params *scan_params;
enum wpa_states prev_state; enum wpa_states prev_state;
struct wpa_ssid *ssid = NULL; struct wpa_ssid *ssid = NULL;
struct wpabuf *wps_ie = NULL; struct wpabuf *extra_ie = NULL;
int ret; int ret;
unsigned int max_sched_scan_ssids; unsigned int max_sched_scan_ssids;
int wildcard = 0; int wildcard = 0;
@ -925,8 +923,11 @@ int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s)
params.filter_ssids = NULL; params.filter_ssids = NULL;
} }
if (wpa_s->wps) extra_ie = wpa_supplicant_extra_ies(wpa_s);
wps_ie = wpa_supplicant_extra_ies(wpa_s, &params); if (extra_ie) {
params.extra_ies = wpabuf_head(extra_ie);
params.extra_ies_len = wpabuf_len(extra_ie);
}
scan_params = &params; scan_params = &params;
@ -943,7 +944,7 @@ scan:
ret = wpa_supplicant_start_sched_scan(wpa_s, scan_params, ret = wpa_supplicant_start_sched_scan(wpa_s, scan_params,
wpa_s->sched_scan_interval); wpa_s->sched_scan_interval);
wpabuf_free(wps_ie); wpabuf_free(extra_ie);
os_free(params.filter_ssids); os_free(params.filter_ssids);
if (ret) { if (ret) {
wpa_msg(wpa_s, MSG_WARNING, "Failed to initiate sched scan"); wpa_msg(wpa_s, MSG_WARNING, "Failed to initiate sched scan");