aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-12-16 20:08:33 (GMT)
committerJouni Malinen <j@w1.fi>2013-12-24 05:35:42 (GMT)
commitc2be937ce78021892f80c04e4da184137e044403 (patch)
tree5d476248c52bc71c08b92574cdf10f907857d268
parente72a001b0f15b039d3ce21e9781f8236a21bbf06 (diff)
downloadhostap-c2be937ce78021892f80c04e4da184137e044403.zip
hostap-c2be937ce78021892f80c04e4da184137e044403.tar.gz
hostap-c2be937ce78021892f80c04e4da184137e044403.tar.bz2
wpa_supplicant: Use monotonic time for EAPOL RX workaround
The EAPOL RX workaround checks that the events are less than 100 ms apart, so only uses relative times and should use monotonic time. Signed-hostap: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--wpa_supplicant/events.c6
-rw-r--r--wpa_supplicant/wpa_supplicant.c2
-rw-r--r--wpa_supplicant/wpa_supplicant_i.h2
3 files changed, 5 insertions, 5 deletions
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 517d812..21a1132 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -1951,9 +1951,9 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
wpa_s->last_eapol_matches_bssid = 0;
if (wpa_s->pending_eapol_rx) {
- struct os_time now, age;
- os_get_time(&now);
- os_time_sub(&now, &wpa_s->pending_eapol_rx_time, &age);
+ struct os_reltime now, age;
+ os_get_reltime(&now);
+ os_reltime_sub(&now, &wpa_s->pending_eapol_rx_time, &age);
if (age.sec == 0 && age.usec < 100000 &&
os_memcmp(wpa_s->pending_eapol_rx_src, bssid, ETH_ALEN) ==
0) {
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 6390d13..f93d718 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -2349,7 +2349,7 @@ void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
wpabuf_free(wpa_s->pending_eapol_rx);
wpa_s->pending_eapol_rx = wpabuf_alloc_copy(buf, len);
if (wpa_s->pending_eapol_rx) {
- os_get_time(&wpa_s->pending_eapol_rx_time);
+ os_get_reltime(&wpa_s->pending_eapol_rx_time);
os_memcpy(wpa_s->pending_eapol_rx_src, src_addr,
ETH_ALEN);
}
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 3acb865..769e353 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -517,7 +517,7 @@ struct wpa_supplicant {
int blacklist_cleared;
struct wpabuf *pending_eapol_rx;
- struct os_time pending_eapol_rx_time;
+ struct os_reltime pending_eapol_rx_time;
u8 pending_eapol_rx_src[ETH_ALEN];
unsigned int last_eapol_matches_bssid:1;