summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_proto.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-06-07 23:31:36 +0000
committersam <sam@FreeBSD.org>2005-06-07 23:31:36 +0000
commitb04dca4ae598a9632b531302224e6fa953371b8d (patch)
tree5af55c87a1fdc27b8a61c0900d694ab02eb3318e /sys/net80211/ieee80211_proto.c
parent6088d73c5fcaedc6914c824bbacddae0f7b37c64 (diff)
downloadFreeBSD-src-b04dca4ae598a9632b531302224e6fa953371b8d.zip
FreeBSD-src-b04dca4ae598a9632b531302224e6fa953371b8d.tar.gz
Don't clock the state machine in various cases when roaming is set
to manual; this helps keep wpa_supplicant in sync.
Diffstat (limited to 'sys/net80211/ieee80211_proto.c')
-rw-r--r--sys/net80211/ieee80211_proto.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/net80211/ieee80211_proto.c b/sys/net80211/ieee80211_proto.c
index 8977f01..9b0da80 100644
--- a/sys/net80211/ieee80211_proto.c
+++ b/sys/net80211/ieee80211_proto.c
@@ -940,7 +940,8 @@ ieee80211_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg
ni->ni_fails++;
ieee80211_unref_node(&ni);
}
- ieee80211_begin_scan(ic, arg);
+ if (ic->ic_roaming == IEEE80211_ROAMING_AUTO)
+ ieee80211_begin_scan(ic, arg);
break;
}
break;
@@ -972,10 +973,12 @@ ieee80211_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg
ic->ic_state = ostate; /* stay RUN */
break;
case IEEE80211_FC0_SUBTYPE_DEAUTH:
- /* try to reauth */
- IEEE80211_SEND_MGMT(ic, ni,
- IEEE80211_FC0_SUBTYPE_AUTH, 1);
ieee80211_sta_leave(ic, ni);
+ if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
+ /* try to reauth */
+ IEEE80211_SEND_MGMT(ic, ni,
+ IEEE80211_FC0_SUBTYPE_AUTH, 1);
+ }
break;
}
break;
@@ -994,9 +997,11 @@ ieee80211_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg
IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 0);
break;
case IEEE80211_S_RUN:
- IEEE80211_SEND_MGMT(ic, ni,
- IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 1);
ieee80211_sta_leave(ic, ni);
+ if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) {
+ IEEE80211_SEND_MGMT(ic, ni,
+ IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 1);
+ }
break;
}
break;
OpenPOWER on IntegriCloud