mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-29 02:38:22 -05:00
Move hostapd_acl_expire() to use common AP periodic cleanup mechanism
This reduces number of periodic eloop timeouts when AP mode operations are in progress. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
3188aabaf1
commit
22fd2822f9
@ -2926,4 +2926,16 @@ struct hostapd_data * hostapd_get_iface(struct hapd_interfaces *interfaces,
|
|||||||
|
|
||||||
void hostapd_periodic_iface(struct hostapd_iface *iface)
|
void hostapd_periodic_iface(struct hostapd_iface *iface)
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < iface->num_bss; i++) {
|
||||||
|
struct hostapd_data *hapd = iface->bss[i];
|
||||||
|
|
||||||
|
if (!hapd->started)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
#ifndef CONFIG_NO_RADIUS
|
||||||
|
hostapd_acl_expire(hapd);
|
||||||
|
#endif /* CONFIG_NO_RADIUS */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -399,19 +399,15 @@ static void hostapd_acl_expire_queries(struct hostapd_data *hapd,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hostapd_acl_expire - ACL cache expiration callback
|
* hostapd_acl_expire - ACL cache expiration callback
|
||||||
* @eloop_ctx: struct hostapd_data *
|
* @hapd: struct hostapd_data *
|
||||||
* @timeout_ctx: Not used
|
|
||||||
*/
|
*/
|
||||||
static void hostapd_acl_expire(void *eloop_ctx, void *timeout_ctx)
|
void hostapd_acl_expire(struct hostapd_data *hapd)
|
||||||
{
|
{
|
||||||
struct hostapd_data *hapd = eloop_ctx;
|
|
||||||
struct os_reltime now;
|
struct os_reltime now;
|
||||||
|
|
||||||
os_get_reltime(&now);
|
os_get_reltime(&now);
|
||||||
hostapd_acl_expire_cache(hapd, &now);
|
hostapd_acl_expire_cache(hapd, &now);
|
||||||
hostapd_acl_expire_queries(hapd, &now);
|
hostapd_acl_expire_queries(hapd, &now);
|
||||||
|
|
||||||
eloop_register_timeout(10, 0, hostapd_acl_expire, hapd, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -615,8 +611,6 @@ int hostapd_acl_init(struct hostapd_data *hapd)
|
|||||||
if (radius_client_register(hapd->radius, RADIUS_AUTH,
|
if (radius_client_register(hapd->radius, RADIUS_AUTH,
|
||||||
hostapd_acl_recv_radius, hapd))
|
hostapd_acl_recv_radius, hapd))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
eloop_register_timeout(10, 0, hostapd_acl_expire, hapd, NULL);
|
|
||||||
#endif /* CONFIG_NO_RADIUS */
|
#endif /* CONFIG_NO_RADIUS */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -632,8 +626,6 @@ void hostapd_acl_deinit(struct hostapd_data *hapd)
|
|||||||
struct hostapd_acl_query_data *query, *prev;
|
struct hostapd_acl_query_data *query, *prev;
|
||||||
|
|
||||||
#ifndef CONFIG_NO_RADIUS
|
#ifndef CONFIG_NO_RADIUS
|
||||||
eloop_cancel_timeout(hostapd_acl_expire, hapd, NULL);
|
|
||||||
|
|
||||||
hostapd_acl_cache_free(hapd->acl_cache);
|
hostapd_acl_cache_free(hapd->acl_cache);
|
||||||
#endif /* CONFIG_NO_RADIUS */
|
#endif /* CONFIG_NO_RADIUS */
|
||||||
|
|
||||||
|
@ -24,5 +24,6 @@ int hostapd_allowed_address(struct hostapd_data *hapd, const u8 *addr,
|
|||||||
int hostapd_acl_init(struct hostapd_data *hapd);
|
int hostapd_acl_init(struct hostapd_data *hapd);
|
||||||
void hostapd_acl_deinit(struct hostapd_data *hapd);
|
void hostapd_acl_deinit(struct hostapd_data *hapd);
|
||||||
void hostapd_free_psk_list(struct hostapd_sta_wpa_psk_short *psk);
|
void hostapd_free_psk_list(struct hostapd_sta_wpa_psk_short *psk);
|
||||||
|
void hostapd_acl_expire(struct hostapd_data *hapd);
|
||||||
|
|
||||||
#endif /* IEEE802_11_AUTH_H */
|
#endif /* IEEE802_11_AUTH_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user