summaryrefslogtreecommitdiffstats
path: root/package/hostapd/patches/310-scan_ssid.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-01-23 08:28:26 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-01-23 08:28:26 +0000
commit1f0cb60a115cf4ed359a58a76ffdd46bcc5bbda1 (patch)
tree76570bd515c1b16edfd03ecc34cba3c45baceb55 /package/hostapd/patches/310-scan_ssid.patch
parent7f1760652d125ff3867abe3c62dcb0f22a0013f1 (diff)
hostapd: add a build variant for wpa_supplicant and one for a multicall hostapd+supplicant program (wpad) and remove the old wpa_supplicant package
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19286 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/hostapd/patches/310-scan_ssid.patch')
-rw-r--r--package/hostapd/patches/310-scan_ssid.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/package/hostapd/patches/310-scan_ssid.patch b/package/hostapd/patches/310-scan_ssid.patch
new file mode 100644
index 000000000..5a7e10f6b
--- /dev/null
+++ b/package/hostapd/patches/310-scan_ssid.patch
@@ -0,0 +1,37 @@
+--- a/wpa_supplicant/scan.c
++++ b/wpa_supplicant/scan.c
+@@ -215,6 +215,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;
+
+ if (wpa_s->disconnected && !wpa_s->scan_req) {
+@@ -275,6 +276,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) {
+@@ -336,6 +347,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) {