]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
AP: Use monotonic time for AP list
authorJohannes Berg <johannes.berg@intel.com>
Mon, 25 Nov 2013 20:56:06 +0000 (21:56 +0100)
committerJouni Malinen <j@w1.fi>
Sun, 8 Dec 2013 04:50:15 +0000 (20:50 -0800)
Use the new monotonic time to keep track of when an AP
entry expires.

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

src/ap/ap_list.c
src/ap/ap_list.h

index 9f02151f40409984e83311ba17a82301aca90ead..0dab39fa02be74db1e269618c578cb094f5634e4 100644 (file)
@@ -172,7 +172,6 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
                            struct hostapd_frame_info *fi)
 {
        struct ap_info *ap;
-       struct os_time now;
        int new_ap = 0;
        int set_beacon = 0;
 
@@ -210,8 +209,7 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
        else
                ap->ht_support = 0;
 
-       os_get_time(&now);
-       ap->last_beacon = now.sec;
+       os_get_reltime(&ap->last_beacon);
 
        if (!new_ap && ap != iface->ap_list) {
                /* move AP entry into the beginning of the list so that the
@@ -252,7 +250,7 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
 static void ap_list_timer(void *eloop_ctx, void *timeout_ctx)
 {
        struct hostapd_iface *iface = eloop_ctx;
-       struct os_time now;
+       struct os_reltime now;
        struct ap_info *ap;
        int set_beacon = 0;
 
@@ -261,12 +259,12 @@ static void ap_list_timer(void *eloop_ctx, void *timeout_ctx)
        if (!iface->ap_list)
                return;
 
-       os_get_time(&now);
+       os_get_reltime(&now);
 
        while (iface->ap_list) {
                ap = iface->ap_list->prev;
-               if (ap->last_beacon + iface->conf->ap_table_expiration_time >=
-                   now.sec)
+               if (!os_reltime_expired(&now, &ap->last_beacon,
+                                       iface->conf->ap_table_expiration_time))
                        break;
 
                ap_free_ap(iface, ap);
index d0529a1b4043df14fbc1239c29ce49948083a754..93dc0eda88d33bd19f67c71284a46b1c94109ad6 100644 (file)
@@ -26,7 +26,7 @@ struct ap_info {
 
        int ht_support;
 
-       os_time_t last_beacon;
+       struct os_reltime last_beacon;
 };
 
 struct ieee802_11_elems;