]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Reschedule own scan request if an externally started one is in progress
authorJouni Malinen <j@w1.fi>
Thu, 26 Dec 2013 15:53:20 +0000 (17:53 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 26 Dec 2013 16:48:52 +0000 (18:48 +0200)
This avoids some unnecessary attempts to request the driver to start a
scan while it is still busy with the scan operation that was started by
an external program.

Signed-hostap: Jouni Malinen <j@w1.fi>

wpa_supplicant/scan.c

index a40c5b62adb64350308b191d314a98013d9faa17..899d2a99a6230e64676727518e31ea2d6ecabf70 100644 (file)
@@ -508,6 +508,17 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
                return;
        }
 
+       if (wpa_s->external_scan_running) {
+               struct os_reltime now, diff;
+               os_get_reltime(&now);
+               os_reltime_sub(&now, &wpa_s->scan_start_time, &diff);
+               if (diff.sec < 30) {
+                       wpa_dbg(wpa_s, MSG_DEBUG, "Externally triggered scan running - Reschedule the incoming scan req");
+                       wpa_supplicant_req_scan(wpa_s, 1, 0);
+                       return;
+               }
+       }
+
        if (!wpa_supplicant_enabled_networks(wpa_s) &&
            wpa_s->scan_req == NORMAL_SCAN_REQ) {
                wpa_dbg(wpa_s, MSG_DEBUG, "No enabled networks - do not scan");