AP: Use monotonic time for STA connected time
authorJohannes Berg <johannes.berg@intel.com>
Mon, 25 Nov 2013 20:56:04 +0000 (21:56 +0100)
committerJouni Malinen <j@w1.fi>
Sun, 8 Dec 2013 04:50:14 +0000 (20:50 -0800)
Connected time is relative, so should be using monotonic time
rather than time of day.

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

src/ap/ctrl_iface_ap.c
src/ap/hostapd.c
src/ap/ieee802_1x.c
src/ap/sta_info.h

index ac33068..4125fd5 100644 (file)
 static int hostapd_get_sta_conn_time(struct sta_info *sta,
                                     char *buf, size_t buflen)
 {
-       struct os_time now, age;
+       struct os_reltime age;
        int len = 0, ret;
 
        if (!sta->connected_time.sec)
                return 0;
 
-       os_get_time(&now);
-       os_time_sub(&now, &sta->connected_time, &age);
+       os_reltime_age(&sta->connected_time, &age);
 
        ret = os_snprintf(buf + len, buflen - len, "connected_time=%u\n",
                          (unsigned int) age.sec);
index 492861e..6fe2956 100644 (file)
@@ -1967,7 +1967,7 @@ void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
         * IEEE 802.1X/WPA code will start accounting after the station has
         * been authorized. */
        if (!hapd->conf->ieee802_1x && !hapd->conf->wpa) {
-               os_get_time(&sta->connected_time);
+               os_get_reltime(&sta->connected_time);
                accounting_sta_start(hapd, sta);
        }
 
index 7874332..4465d12 100644 (file)
@@ -102,7 +102,7 @@ void ieee802_1x_set_sta_authorized(struct hostapd_data *hapd,
        }
 
        if (authorized) {
-               os_get_time(&sta->connected_time);
+               os_get_reltime(&sta->connected_time);
                accounting_sta_start(hapd, sta);
        }
 }
index dc74219..5dfe1aa 100644 (file)
@@ -126,7 +126,7 @@ struct sta_info {
        struct wpabuf *p2p_ie; /* P2P IE from (Re)Association Request */
        struct wpabuf *hs20_ie; /* HS 2.0 IE from (Re)Association Request */
 
-       struct os_time connected_time;
+       struct os_reltime connected_time;
 
 #ifdef CONFIG_SAE
        struct sae_data *sae;