diff mbox

wpa_supplicant: fix 2 bugs in cancel sched scan

Message ID 1383485213-2932-1-git-send-email-ilan.peer@intel.com
State Changes Requested
Headers show

Commit Message

Peer, Ilan Nov. 3, 2013, 1:26 p.m. UTC
From: David Spinadel <david.spinadel@intel.com>

Cancel scheduled scan even if not scanning on the current interface,
and do that only on interfaces that is scanning.

Signed-hostap: David Spinadel <david.spinadel@intel.com>

---
 wpa_supplicant/scan.c |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
diff mbox

Patch

diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index 0549656..8eb6046 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -1238,12 +1238,12 @@  void wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s)
 	struct wpa_supplicant *iface;
 	const char *rn, *rn2;
 
-	if (!wpa_s->sched_scanning)
-		return;
-
-	wpa_dbg(wpa_s, MSG_DEBUG, "Cancelling sched scan");
-	eloop_cancel_timeout(wpa_supplicant_sched_scan_timeout, wpa_s, NULL);
-	wpa_supplicant_stop_sched_scan(wpa_s);
+	if (wpa_s->sched_scanning) {
+		wpa_dbg(wpa_s, MSG_DEBUG, "Cancelling sched scan");
+		eloop_cancel_timeout(wpa_supplicant_sched_scan_timeout, wpa_s,
+				     NULL);
+		wpa_supplicant_stop_sched_scan(wpa_s);
+	}
 
 	/* Cancel scheduled scan on other interfaces */
 	if (!wpa_s->driver->get_radio_name)
@@ -1255,7 +1255,8 @@  void wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s)
 		return;
 
 	for (iface = wpa_s->global->ifaces; iface; iface = iface->next) {
-		if (iface == wpa_s || !iface->driver->get_radio_name)
+		if (iface == wpa_s || !iface->driver->get_radio_name ||
+		    !iface->sched_scanning)
 			continue;
 
 		rn2 = iface->driver->get_radio_name(iface->drv_priv);