aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMahesh A Saptasagar <c_msapta@qti.qualcomm.com>2015-06-30 07:11:27 (GMT)
committerJouni Malinen <j@w1.fi>2015-08-13 18:10:16 (GMT)
commit0d0f7ecbb18990299e394c60e9dae842a54cf1ca (patch)
tree153798d742824fdcad4ca8fb81d505258563001f
parent76de2b6708e050caf1f84c9ddc2c435c9f2e114a (diff)
downloadhostap-0d0f7ecbb18990299e394c60e9dae842a54cf1ca.zip
hostap-0d0f7ecbb18990299e394c60e9dae842a54cf1ca.tar.gz
hostap-0d0f7ecbb18990299e394c60e9dae842a54cf1ca.tar.bz2
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>
-rw-r--r--wpa_supplicant/events.c3
-rw-r--r--wpa_supplicant/wpa_supplicant.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 829cd3f..d95e066 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2377,7 +2377,8 @@ static void wpa_supplicant_event_disassoc_finish(struct wpa_supplicant *wpa_s,
"try to re-connect");
wpa_s->reassociate = 0;
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;
if (is_zero_ether_addr(bssid))
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 816d522..9a5d180 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -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));
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);
/* Starting new association, so clear the possibly used WPA IE from the