Esempio n. 1
0
int accounting_init(struct hostapd_data *hapd)
{
	/* Acct-Session-Id should be unique over reboots. If reliable clock is
	 * not available, this could be replaced with reboot counter, etc. */
	hapd->acct_session_id_hi = time(NULL);

	if (radius_client_register(hapd->radius, RADIUS_ACCT,
				   accounting_receive, hapd))
		return -1;

	accounting_report_state(hapd, 1);

	return 0;
}
Esempio n. 2
0
/**
 * accounting_init: Initialize accounting
 * @hapd: hostapd BSS data
 * Returns: 0 on success, -1 on failure
 */
int accounting_init(struct hostapd_data *hapd)
{
	struct os_time now;

	/* Acct-Session-Id should be unique over reboots. Using a random number
	 * is preferred. If that is not available, take the current time. Mix
	 * in microseconds to make this more likely to be unique. */
	os_get_time(&now);
	if (os_get_random((u8 *) &hapd->acct_session_id_hi,
			  sizeof(hapd->acct_session_id_hi)) < 0)
		hapd->acct_session_id_hi = now.sec;
	hapd->acct_session_id_hi ^= now.usec;

	if (radius_client_register(hapd->radius, RADIUS_ACCT,
				   accounting_receive, hapd))
		return -1;

	accounting_report_state(hapd, 1);

	return 0;
}
/**
 * accounting_deinit: Deinitilize accounting
 * @hapd: hostapd BSS data
 */
void accounting_deinit(struct hostapd_data *hapd)
{
	accounting_report_state(hapd, 0);
}