From: Pandiyarajan Pitchaimuthu Date: Tue, 25 Dec 2012 11:54:21 +0000 (+0200) Subject: Android: Stop/restart supplicant scan on PNO start/stop X-Git-Tag: hostap_2_0~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=602c6b8340b5521c82df0535698137dd73ae2350;p=thirdparty%2Fhostap.git Android: Stop/restart supplicant scan on PNO start/stop Cancel the existing supplicant scan and start a new supplicant scan on PNO start and stop respectively. This makes sure that supplicant scan is in progress when the device resumes. Signed-off-by: Pandiyarajan Pitchaimuthu --- diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 35441dd36..864dd7d6d 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -58,6 +58,11 @@ static int pno_start(struct wpa_supplicant *wpa_s) if (wpa_s->pno) return 0; + if (wpa_s->wpa_state == WPA_SCANNING) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + } + os_memset(¶ms, 0, sizeof(params)); num_ssid = 0; @@ -113,11 +118,17 @@ static int pno_start(struct wpa_supplicant *wpa_s) static int pno_stop(struct wpa_supplicant *wpa_s) { + int ret = 0; + if (wpa_s->pno) { wpa_s->pno = 0; - return wpa_drv_stop_sched_scan(wpa_s); + ret = wpa_drv_stop_sched_scan(wpa_s); } - return 0; + + if (wpa_s->wpa_state == WPA_SCANNING) + wpa_supplicant_req_scan(wpa_s, 0, 0); + + return ret; }