Do not stop ongoing PNO sched_scan on association/disconnection

PNO was stopped by the wpa_supplicant during the connection attempts or
while handling disassociation indication. External entities, mainly, the
Android Wi-Fi framework, does not expects PNO to be stopped by other
modules. Hence, do not stop the sched_scan in these scenarios if it is
triggered externally for PNO.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Mahesh A Saptasagar 2015-06-30 12:41:27 +05:30 committed by Jouni Malinen
parent 76de2b6708
commit 0d0f7ecbb1
2 changed files with 5 additions and 2 deletions

View file

@ -2377,7 +2377,8 @@ static void wpa_supplicant_event_disassoc_finish(struct wpa_supplicant *wpa_s,
"try to re-connect"); "try to re-connect");
wpa_s->reassociate = 0; wpa_s->reassociate = 0;
wpa_s->disconnected = 1; wpa_s->disconnected = 1;
wpa_supplicant_cancel_sched_scan(wpa_s); if (!wpa_s->pno)
wpa_supplicant_cancel_sched_scan(wpa_s);
} }
bssid = wpa_s->bssid; bssid = wpa_s->bssid;
if (is_zero_ether_addr(bssid)) if (is_zero_ether_addr(bssid))

View file

@ -2017,7 +2017,9 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
wpa_ssid_txt(ssid->ssid, ssid->ssid_len)); wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
os_memset(wpa_s->pending_bssid, 0, ETH_ALEN); os_memset(wpa_s->pending_bssid, 0, ETH_ALEN);
} }
wpa_supplicant_cancel_sched_scan(wpa_s); if (!wpa_s->pno)
wpa_supplicant_cancel_sched_scan(wpa_s);
wpa_supplicant_cancel_scan(wpa_s); wpa_supplicant_cancel_scan(wpa_s);
/* Starting new association, so clear the possibly used WPA IE from the /* Starting new association, so clear the possibly used WPA IE from the