You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
38 lines
1.0 KiB
15 years ago
|
--- a/wpa_supplicant/scan.c
|
||
|
+++ b/wpa_supplicant/scan.c
|
||
14 years ago
|
@@ -250,6 +250,7 @@ static void wpa_supplicant_scan(void *el
|
||
15 years ago
|
enum wps_request_type req_type = WPS_REQ_ENROLLEE_INFO;
|
||
|
#endif /* CONFIG_WPS */
|
||
|
struct wpa_driver_scan_params params;
|
||
|
+ int scan_ssid_all = 1;
|
||
|
size_t max_ssids;
|
||
15 years ago
|
enum wpa_states prev_state;
|
||
15 years ago
|
|
||
14 years ago
|
@@ -306,6 +307,16 @@ static void wpa_supplicant_scan(void *el
|
||
15 years ago
|
wpa_s->wpa_state == WPA_INACTIVE)
|
||
|
wpa_supplicant_set_state(wpa_s, WPA_SCANNING);
|
||
|
|
||
|
+ /* check if all configured ssids should be scanned directly */
|
||
|
+ ssid = wpa_s->conf->ssid;
|
||
|
+ while (ssid) {
|
||
|
+ if (!ssid->scan_ssid) {
|
||
|
+ scan_ssid_all = 0;
|
||
|
+ break;
|
||
|
+ }
|
||
|
+ ssid = ssid->next;
|
||
|
+ }
|
||
|
+
|
||
|
/* Find the starting point from which to continue scanning */
|
||
|
ssid = wpa_s->conf->ssid;
|
||
|
if (wpa_s->prev_scan_ssid != WILDCARD_SSID_SCAN) {
|
||
14 years ago
|
@@ -369,6 +380,9 @@ static void wpa_supplicant_scan(void *el
|
||
15 years ago
|
int_array_sort_unique(params.freqs);
|
||
|
}
|
||
|
|
||
|
+ if (scan_ssid_all && !ssid)
|
||
|
+ ssid = wpa_s->conf->ssid;
|
||
|
+
|
||
|
if (ssid) {
|
||
|
wpa_s->prev_scan_ssid = ssid;
|
||
|
if (max_ssids > 1) {
|