1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-25 23:49:34 +02:00
openwrt-xburst/package/hostapd/patches/310-scan_ssid.patch
nbd ad35c2c69e hostapd: update to 20100418 (0.7.2)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21142 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-24 17:24:07 +00:00

38 lines
1.0 KiB
Diff

--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -248,6 +248,7 @@ static void wpa_supplicant_scan(void *el
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;
enum wpa_states prev_state;
@@ -311,6 +312,16 @@ static void wpa_supplicant_scan(void *el
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) {
@@ -374,6 +385,9 @@ static void wpa_supplicant_scan(void *el
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) {