huge madwifi update (work in progress, disabled by default, compiles but breaks at...
[openwrt/svn-archive/archive.git] / package / madwifi / patches-r3776 / 325-sta_node_leave.patch
1 Drop stale AP nodes from the client list when disconnecting.
2 Fixes some reassoc issues.
3
4 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
5
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
10 @@ -1352,7 +1352,7 @@
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);
16 break;
17 case IEEE80211_M_HOSTAP:
18 ieee80211_iterate_nodes(&ic->ic_sta,
19 @@ -1362,6 +1362,7 @@
20 break;
21 }
22 goto reset;
23 + case IEEE80211_S_AUTH:
24 case IEEE80211_S_ASSOC:
25 switch (vap->iv_opmode) {
26 case IEEE80211_M_STA:
27 @@ -1380,7 +1381,6 @@
28 case IEEE80211_S_SCAN:
29 ieee80211_cancel_scan(vap);
30 goto reset;
31 - case IEEE80211_S_AUTH:
32 reset:
33 ieee80211_reset_bss(vap);
34 break;
35 @@ -1436,7 +1436,7 @@
36 break;
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,
44 @@ -1487,7 +1487,7 @@
45 vap->iv_state = ostate; /* stay RUN */
46 break;
47 case IEEE80211_FC0_SUBTYPE_DEAUTH:
48 - ieee80211_sta_leave(ni);
49 + ieee80211_node_leave(ni);
50 if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
51 /* try to reauth */
52 IEEE80211_SEND_MGMT(ni,
53 @@ -1514,7 +1514,7 @@
54 IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 0);
55 break;
56 case IEEE80211_S_RUN:
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 ?