mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
AP: Use monotonic time for AP list
Use the new monotonic time to keep track of when an AP entry expires. Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
e5c9e401a4
commit
100298e896
@ -172,7 +172,6 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
|
|||||||
struct hostapd_frame_info *fi)
|
struct hostapd_frame_info *fi)
|
||||||
{
|
{
|
||||||
struct ap_info *ap;
|
struct ap_info *ap;
|
||||||
struct os_time now;
|
|
||||||
int new_ap = 0;
|
int new_ap = 0;
|
||||||
int set_beacon = 0;
|
int set_beacon = 0;
|
||||||
|
|
||||||
@ -210,8 +209,7 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
|
|||||||
else
|
else
|
||||||
ap->ht_support = 0;
|
ap->ht_support = 0;
|
||||||
|
|
||||||
os_get_time(&now);
|
os_get_reltime(&ap->last_beacon);
|
||||||
ap->last_beacon = now.sec;
|
|
||||||
|
|
||||||
if (!new_ap && ap != iface->ap_list) {
|
if (!new_ap && ap != iface->ap_list) {
|
||||||
/* move AP entry into the beginning of the list so that the
|
/* move AP entry into the beginning of the list so that the
|
||||||
@ -252,7 +250,7 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
|
|||||||
static void ap_list_timer(void *eloop_ctx, void *timeout_ctx)
|
static void ap_list_timer(void *eloop_ctx, void *timeout_ctx)
|
||||||
{
|
{
|
||||||
struct hostapd_iface *iface = eloop_ctx;
|
struct hostapd_iface *iface = eloop_ctx;
|
||||||
struct os_time now;
|
struct os_reltime now;
|
||||||
struct ap_info *ap;
|
struct ap_info *ap;
|
||||||
int set_beacon = 0;
|
int set_beacon = 0;
|
||||||
|
|
||||||
@ -261,12 +259,12 @@ static void ap_list_timer(void *eloop_ctx, void *timeout_ctx)
|
|||||||
if (!iface->ap_list)
|
if (!iface->ap_list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
os_get_time(&now);
|
os_get_reltime(&now);
|
||||||
|
|
||||||
while (iface->ap_list) {
|
while (iface->ap_list) {
|
||||||
ap = iface->ap_list->prev;
|
ap = iface->ap_list->prev;
|
||||||
if (ap->last_beacon + iface->conf->ap_table_expiration_time >=
|
if (!os_reltime_expired(&now, &ap->last_beacon,
|
||||||
now.sec)
|
iface->conf->ap_table_expiration_time))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ap_free_ap(iface, ap);
|
ap_free_ap(iface, ap);
|
||||||
|
@ -26,7 +26,7 @@ struct ap_info {
|
|||||||
|
|
||||||
int ht_support;
|
int ht_support;
|
||||||
|
|
||||||
os_time_t last_beacon;
|
struct os_reltime last_beacon;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ieee802_11_elems;
|
struct ieee802_11_elems;
|
||||||
|
Loading…
Reference in New Issue
Block a user