mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
42 lines
1.1 KiB
Diff
42 lines
1.1 KiB
Diff
|
Don't do broadcast SSID scans, if all configured SSIDs use scan_ssid=1. Improves background scanning in supplicant-managed roaming.
|
||
|
|
||
|
Index: wpa_supplicant-0.6.3/wpa_supplicant/scan.c
|
||
|
===================================================================
|
||
|
--- wpa_supplicant-0.6.3.orig/wpa_supplicant/scan.c 2008-07-09 18:53:28.000000000 +0200
|
||
|
+++ wpa_supplicant-0.6.3/wpa_supplicant/scan.c 2008-07-09 19:00:55.000000000 +0200
|
||
|
@@ -48,11 +48,23 @@
|
||
|
int enabled, scan_req = 0, ret;
|
||
|
const u8 *extra_ie = NULL;
|
||
|
size_t extra_ie_len = 0;
|
||
|
+ int scan_ssid_all = 1;
|
||
|
|
||
|
if (wpa_s->disconnected && !wpa_s->scan_req)
|
||
|
return;
|
||
|
|
||
|
enabled = 0;
|
||
|
+
|
||
|
+ /* 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;
|
||
|
+ }
|
||
|
+
|
||
|
ssid = wpa_s->conf->ssid;
|
||
|
while (ssid) {
|
||
|
if (!ssid->disabled) {
|
||
|
@@ -125,6 +137,10 @@
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
+ if (scan_ssid_all && !ssid) {
|
||
|
+ ssid = wpa_s->conf->ssid;
|
||
|
+ }
|
||
|
+
|
||
|
wpa_printf(MSG_DEBUG, "Starting AP scan (%s SSID)",
|
||
|
ssid ? "specific": "broadcast");
|
||
|
if (ssid) {
|