Browse Source

Add an option to request a connection without a new scan

Jouni Malinen 15 years ago
parent
commit
8cd82735cb
2 changed files with 7 additions and 2 deletions
  1. 5 2
      wpa_supplicant/scan.c
  2. 2 0
      wpa_supplicant/wpa_supplicant_i.h

+ 5 - 2
wpa_supplicant/scan.c

@@ -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) {

+ 2 - 0
wpa_supplicant/wpa_supplicant_i.h

@@ -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;
 };