]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix adding extra IEs in sched scan
authorEyal Shapira <eyal@wizery.com>
Mon, 13 Aug 2012 18:48:55 +0000 (21:48 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 13 Aug 2012 18:48:55 +0000 (21:48 +0300)
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 <eyal@wizery.com>
intended-for: hostap-1

wpa_supplicant/scan.c

index 94cab313169e345682b9930e3daebd140300346f..c608c3877848fefe7ed91b81b148a6853ef40fbc 100644 (file)
@@ -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, &params);
-       extra_ie = wpa_supplicant_extra_ies(wpa_s, &params);
+       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, &params);
+       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 = &params;
 
@@ -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");