Add an option to request a connection without a new scan
authorJouni Malinen <jouni.malinen@atheros.com>
Sun, 11 Apr 2010 16:55:40 +0000 (19:55 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 11 Apr 2010 16:55:40 +0000 (19:55 +0300)
wpa_supplicant/scan.c
wpa_supplicant/wpa_supplicant_i.h

index 1a9eba6..610d56b 100644 (file)
@@ -291,7 +291,8 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
 
        if (wpa_s->scan_res_tried == 0 && wpa_s->conf->ap_scan == 1 &&
            !(wpa_s->drv_flags & WPA_DRIVER_FLAGS_USER_SPACE_MLME) &&
-           wps != 2 && !wpa_s->conf->filter_ssids) {
+           wps != 2 && !wpa_s->conf->filter_ssids &&
+           !wpa_s->connect_without_scan) {
                wpa_s->scan_res_tried++;
                wpa_printf(MSG_DEBUG, "Trying to get current scan results "
                           "first without requesting a new scan to speed up "
@@ -322,7 +323,9 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
                }
        }
 
-       if (scan_req != 2 && wpa_s->conf->ap_scan == 2) {
+       if (scan_req != 2 && (wpa_s->conf->ap_scan == 2 ||
+                             wpa_s->connect_without_scan)) {
+               wpa_s->connect_without_scan = 0;
                wpa_supplicant_assoc_try(wpa_s, ssid);
                return;
        } else if (wpa_s->conf->ap_scan == 2) {
index 6465cb1..d7fc884 100644 (file)
@@ -430,6 +430,8 @@ struct wpa_supplicant {
        const struct bgscan_ops *bgscan;
        void *bgscan_priv;
 
+       int connect_without_scan;
+
        int after_wps;
        unsigned int wps_freq;
 };