Ignore TX status for Data frames from not associated STA

The TX status event may be received after a stations has been
disassociated in cases where the disassociation is following a
transmission of a Data frame. Ignore such events if the STA is not
associated at the moment the event is being processed. This avoids
confusing debug entries and rescheduling of the EAPOL TX timeouts for
STAs that are still in the STA table, but are not really in active EAPOL
session.

Signed-hostap: Jouni Malinen <j@w1.fi>
intended-for: hostap-1
This commit is contained in:
Jouni Malinen 2012-02-04 12:18:56 +02:00
parent d3f57d0ff1
commit d9a38716cc

View file

@ -1,6 +1,6 @@
/* /*
* hostapd / IEEE 802.11 Management * hostapd / IEEE 802.11 Management
* Copyright (c) 2002-2011, Jouni Malinen <j@w1.fi> * Copyright (c) 2002-2012, Jouni Malinen <j@w1.fi>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
@ -1774,8 +1774,12 @@ void hostapd_eapol_tx_status(struct hostapd_data *hapd, const u8 *dst,
break; break;
} }
} }
if (sta == NULL) if (sta == NULL || !(sta->flags & WLAN_STA_ASSOC)) {
wpa_printf(MSG_DEBUG, "Ignore TX status for Data frame to STA "
MACSTR " that is not currently associated",
MAC2STR(dst));
return; return;
}
ieee802_1x_eapol_tx_status(hapd, sta, data, len, ack); ieee802_1x_eapol_tx_status(hapd, sta, data, len, ack);
} }