6beaed449c4b230b958019aff8280e3c593989e3
[openwrt/svn-archive/archive.git] / package / wpa_supplicant / patches / 120-ssid_scan.patch
1 Don't do broadcast SSID scans, if all configured SSIDs use scan_ssid=1. Improves background scanning in supplicant-managed roaming.
2
3 --- a/wpa_supplicant/scan.c
4 +++ b/wpa_supplicant/scan.c
5 @@ -73,6 +73,7 @@ static void wpa_supplicant_scan(void *el
6 struct wpabuf *wps_ie = NULL;
7 const u8 *extra_ie = NULL;
8 size_t extra_ie_len = 0;
9 + int scan_ssid_all = 1;
10 int wps = 0;
11 #ifdef CONFIG_WPS
12 enum wps_request_type req_type = WPS_REQ_ENROLLEE_INFO;
13 @@ -82,6 +83,17 @@ static void wpa_supplicant_scan(void *el
14 return;
15
16 enabled = 0;
17 +
18 + /* check if all configured ssids should be scanned directly */
19 + ssid = wpa_s->conf->ssid;
20 + while (ssid) {
21 + if (!ssid->scan_ssid) {
22 + scan_ssid_all = 0;
23 + break;
24 + }
25 + ssid = ssid->next;
26 + }
27 +
28 ssid = wpa_s->conf->ssid;
29 while (ssid) {
30 if (!ssid->disabled) {
31 @@ -154,6 +166,10 @@ static void wpa_supplicant_scan(void *el
32 return;
33 }
34
35 + if (scan_ssid_all && !ssid) {
36 + ssid = wpa_s->conf->ssid;
37 + }
38 +
39 wpa_printf(MSG_DEBUG, "Starting AP scan (%s SSID)",
40 ssid ? "specific": "broadcast");
41 if (ssid) {