1 Drop stale AP nodes from the client list when disconnecting.
2 Fixes some reassoc issues.
4 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
6 Index: madwifi-trunk-r3776/net80211/ieee80211_proto.c
7 ===================================================================
8 --- madwifi-trunk-r3776.orig/net80211/ieee80211_proto.c 2008-07-17 02:20:51.000000000 +0200
9 +++ madwifi-trunk-r3776/net80211/ieee80211_proto.c 2008-07-17 04:06:47.000000000 +0200
11 IEEE80211_SEND_MGMT(ni,
12 IEEE80211_FC0_SUBTYPE_DISASSOC,
13 IEEE80211_REASON_ASSOC_LEAVE);
14 - ieee80211_sta_leave(ni);
15 + ieee80211_node_leave(ni);
17 case IEEE80211_M_HOSTAP:
18 ieee80211_iterate_nodes(&ic->ic_sta,
23 + case IEEE80211_S_AUTH:
24 case IEEE80211_S_ASSOC:
25 switch (vap->iv_opmode) {
28 case IEEE80211_S_SCAN:
29 ieee80211_cancel_scan(vap);
31 - case IEEE80211_S_AUTH:
33 ieee80211_reset_bss(vap);
37 case IEEE80211_S_RUN: /* beacon miss */
38 if (vap->iv_opmode == IEEE80211_M_STA) {
39 - ieee80211_sta_leave(ni);
40 + ieee80211_node_leave(ni);
41 vap->iv_flags &= ~IEEE80211_F_SIBSS; /* XXX */
42 if (ic->ic_roaming == IEEE80211_ROAMING_AUTO)
43 ieee80211_check_scan(vap,
45 vap->iv_state = ostate; /* stay RUN */
47 case IEEE80211_FC0_SUBTYPE_DEAUTH:
48 - ieee80211_sta_leave(ni);
49 + ieee80211_node_leave(ni);
50 if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
52 IEEE80211_SEND_MGMT(ni,
54 IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 0);
57 - ieee80211_sta_leave(ni);
58 + ieee80211_node_leave(ni);
59 if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
60 /* NB: caller specifies ASSOC/REASSOC by arg */
61 IEEE80211_SEND_MGMT(ni, arg ?