madwifi: beacon timer fixes
[openwrt/staging/chunkeey.git] / package / madwifi / patches / 447-sta_reconnect.patch
index e6f019ef75dfacea083bd0e848ceb36c79a4b3fb..960d1b8ed885a5a867f3fc11313aeedcddad5016 100644 (file)
        ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan);
 --- a/net80211/ieee80211_proto.c
 +++ b/net80211/ieee80211_proto.c
-@@ -1512,14 +1512,13 @@ __ieee80211_newstate(struct ieee80211vap
-                       if (arg != 0)
-                               ieee80211_scan_assoc_fail(ic,
-                                       vap->iv_bss->ni_macaddr, arg);
-+                      ieee80211_node_leave(vap->iv_bss);
-                       if (ic->ic_roaming == IEEE80211_ROAMING_AUTO)
-                               ieee80211_check_scan(vap,
-                                       IEEE80211_SCAN_ACTIVE,
-                                       IEEE80211_SCAN_FOREVER,
-                                       vap->iv_des_nssid, vap->iv_des_ssid,
-                                       NULL);
--                      else
--                              ieee80211_node_leave(vap->iv_bss);
+@@ -1602,7 +1602,6 @@ __ieee80211_newstate(struct ieee80211vap
+                               IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 0);
                        break;
-               case IEEE80211_S_RUN:           /* beacon miss */
-                       if (vap->iv_opmode == IEEE80211_M_STA) {
+               case IEEE80211_S_RUN:
+-                      ieee80211_node_leave(ni);
+                       if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
+                               /* NB: caller specifies ASSOC/REASSOC by arg */
+                               IEEE80211_SEND_MGMT(ni, arg ?