wpa_supplicant: Use monotonic time for last_scan check
authorJohannes Berg <johannes.berg@intel.com>
Mon, 16 Dec 2013 20:08:44 +0000 (21:08 +0100)
committerJouni Malinen <j@w1.fi>
Tue, 24 Dec 2013 06:21:18 +0000 (08:21 +0200)
This just serves to check if there was a scan within
the last 5 seconds, hence it should use monotonic time.
While at it, also use os_reltime_expired().

Signed-hostap: Johannes Berg <johannes.berg@intel.com>

wpa_supplicant/bss.c
wpa_supplicant/events.c
wpa_supplicant/wpa_supplicant_i.h

index e26cdc0..df1bf11 100644 (file)
@@ -733,7 +733,7 @@ void wpa_bss_update_end(struct wpa_supplicant *wpa_s, struct scan_info *info,
        struct wpa_bss *bss, *n;
 
        wpa_s->last_scan_full = 0;
-       os_get_time(&wpa_s->last_scan);
+       os_get_reltime(&wpa_s->last_scan);
        if (!new_scan)
                return; /* do not expire entries without new scan */
 
index fa5d681..eeb27e3 100644 (file)
@@ -1428,13 +1428,13 @@ int wpa_supplicant_fast_associate(struct wpa_supplicant *wpa_s)
 #ifdef CONFIG_NO_SCAN_PROCESSING
        return -1;
 #else /* CONFIG_NO_SCAN_PROCESSING */
-       struct os_time now;
+       struct os_reltime now;
 
        if (wpa_s->last_scan_res_used <= 0)
                return -1;
 
-       os_get_time(&now);
-       if (now.sec - wpa_s->last_scan.sec > 5) {
+       os_get_reltime(&now);
+       if (os_reltime_expired(&now, &wpa_s->last_scan, 5)) {
                wpa_printf(MSG_DEBUG, "Fast associate: Old scan results");
                return -1;
        }
index 663f7fd..5cb7674 100644 (file)
@@ -409,7 +409,7 @@ struct wpa_supplicant {
        unsigned int last_scan_res_used;
        unsigned int last_scan_res_size;
        int last_scan_full;
-       struct os_time last_scan;
+       struct os_reltime last_scan;
 
        struct wpa_driver_ops *driver;
        int interface_removed; /* whether the network interface has been