1 Don't do broadcast SSID scans, if all configured SSIDs use scan_ssid=1. Improves background scanning in supplicant-managed roaming.
3 --- a/wpa_supplicant/scan.c
4 +++ b/wpa_supplicant/scan.c
5 @@ -48,11 +48,23 @@ static void wpa_supplicant_scan(void *el
6 int enabled, scan_req = 0, ret;
7 const u8 *extra_ie = NULL;
8 size_t extra_ie_len = 0;
9 + int scan_ssid_all = 1;
11 if (wpa_s->disconnected && !wpa_s->scan_req)
16 + /* check if all configured ssids should be scanned directly */
17 + ssid = wpa_s->conf->ssid;
19 + if (!ssid->scan_ssid) {
26 ssid = wpa_s->conf->ssid;
28 if (!ssid->disabled) {
29 @@ -125,6 +137,10 @@ static void wpa_supplicant_scan(void *el
33 + if (scan_ssid_all && !ssid) {
34 + ssid = wpa_s->conf->ssid;
37 wpa_printf(MSG_DEBUG, "Starting AP scan (%s SSID)",
38 ssid ? "specific": "broadcast");