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 void
ieee80211_node_leave(struct ieee80211com *ic, struct ieee80211_node *ni) 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, IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC | IEEE80211_MSG_DEBUG,
"[%s] station with aid %d leaves\n", "[%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); ieee80211_sta_leave(ic, ni);
done: 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 u_int8_t