1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-13 14:40:22 +00:00

when a station is timed out for inactivity, remove it from the table

so it isn't considered again
This commit is contained in:
Sam Leffler 2005-01-20 02:59:21 +00:00
parent ce64703289
commit 44acc00dda
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=140499

View File

@ -1713,6 +1713,7 @@ ieee80211_node_leave_11g(struct ieee80211com *ic, struct ieee80211_node *ni)
void
ieee80211_node_leave(struct ieee80211com *ic, struct ieee80211_node *ni)
{
struct ieee80211_node_table *nt = ni->ni_table;
IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC | IEEE80211_MSG_DEBUG,
"[%s] station with aid %d leaves\n",
@ -1752,8 +1753,18 @@ ieee80211_node_leave(struct ieee80211com *ic, struct ieee80211_node *ni)
*/
ieee80211_sta_leave(ic, ni);
done:
ni->ni_inact_reload = ic->ic_inact_init; /* just in case */
ieee80211_free_node(ni);
/*
* Remove the node from any table it's recorded in and
* drop the caller's reference. Removal from the table
* is important to insure the node is not reprocessed
* for inactivity.
*/
if (nt != NULL) {
IEEE80211_NODE_LOCK(nt);
node_reclaim(nt, ni);
IEEE80211_NODE_UNLOCK(nt);
} else
ieee80211_free_node(ni);
}
u_int8_t