Date: Thu, 20 Jan 2005 01:18:19 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 69340 for review Message-ID: <200501200118.j0K1IJ3I013579@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=69340 Change 69340 by sam@sam_ebb on 2005/01/20 01:17:33 when a station is removed due to inactivity remove them from the table so they aren't considered again Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_node.c#46 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#46 (text+ko) ==== @@ -1698,6 +1698,7 @@ 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", @@ -1737,8 +1738,18 @@ */ 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200501200118.j0K1IJ3I013579>