AP: Use monotonic time for STA accounting
For type-safety, make sta->acct_session_start a struct os_reltime and then use monotonic time for accounting. For RADIUS reporting, continue to use wall clock time as specified by RFC 2869, but for the session time use monotonic time. Interestingly, RFC 2869 doesn't specify a timezone, so the value is somewhat arbitrary. Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
3e06180fe0
commit
0fc545aee5
3 changed files with 9 additions and 8 deletions
|
@ -1951,7 +1951,7 @@ int ieee802_1x_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta,
|
|||
{
|
||||
int len = 0, ret;
|
||||
struct eapol_state_machine *sm = sta->eapol_sm;
|
||||
struct os_time t;
|
||||
struct os_reltime diff;
|
||||
|
||||
if (sm == NULL)
|
||||
return 0;
|
||||
|
@ -2066,7 +2066,7 @@ int ieee802_1x_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta,
|
|||
len += ret;
|
||||
|
||||
/* dot1xAuthSessionStatsTable */
|
||||
os_get_time(&t);
|
||||
os_reltime_age(&sta->acct_session_start, &diff);
|
||||
ret = os_snprintf(buf + len, buflen - len,
|
||||
/* TODO: dot1xAuthSessionOctetsRx */
|
||||
/* TODO: dot1xAuthSessionOctetsTx */
|
||||
|
@ -2081,7 +2081,7 @@ int ieee802_1x_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta,
|
|||
(wpa_key_mgmt_wpa_ieee8021x(
|
||||
wpa_auth_sta_key_mgmt(sta->wpa_sm))) ?
|
||||
1 : 2,
|
||||
(unsigned int) (t.sec - sta->acct_session_start),
|
||||
(unsigned int) diff.sec,
|
||||
sm->identity);
|
||||
if (ret < 0 || (size_t) ret >= buflen - len)
|
||||
return len;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue