[PATCH 2/8] AP: use monotonic time for STA accounting

Jouni Malinen j
Sat Dec 7 18:21:02 PST 2013


On Mon, Nov 25, 2013 at 09:56:03PM +0100, Johannes Berg wrote:
> For type-safetype, make sta->acct_session_start a struct os_reltime

type-safety? ;-)

> diff --git a/src/ap/accounting.c b/src/ap/accounting.c
> @@ -244,7 +242,7 @@ static void accounting_sta_report(struct hostapd_data *hapd,
> -	struct os_time now;
> +	struct os_reltime now, diff;
> @@ -258,9 +256,10 @@ static void accounting_sta_report(struct hostapd_data *hapd,
> -	os_get_time(&now);
> +	os_get_reltime(&now);
> +	os_reltime_sub(&now, &sta->acct_session_start, &diff);
>  	if (!radius_msg_add_attr_int32(msg, RADIUS_ATTR_ACCT_SESSION_TIME,
> -				       now.sec - sta->acct_session_start)) {
> +				       diff.sec)) {

While this part here looks fine, the following use of now in the same
function is problematic:

    if (!radius_msg_add_attr_int32(msg, RADIUS_ATTR_EVENT_TIMESTAMP,
		       now.sec)) {

I'd expect that RADIUS Timestamp attribute to be in showing the real
timestamp of the current moment rather than the system-internal relative
timestamp.

-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the Hostap mailing list