diff options
author | sam <sam@FreeBSD.org> | 2003-11-17 19:02:18 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-11-17 19:02:18 +0000 |
commit | 846a1e2173568edc27e7f1d9f2fb50f10dbd4084 (patch) | |
tree | e6c0132f2c30c919b24fb69f1fdfacea897e77a6 /sys | |
parent | 9ade8a4b037bfeef40687525cd8e9efdbe35784b (diff) | |
download | FreeBSD-src-846a1e2173568edc27e7f1d9f2fb50f10dbd4084.zip FreeBSD-src-846a1e2173568edc27e7f1d9f2fb50f10dbd4084.tar.gz |
on a beacon miss try to reassociate before starting a scan
Submitted by: Henry Qian
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ath/if_ath.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 402f967..2571ceb 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -490,8 +490,15 @@ ath_bmiss_proc(void *arg, int pending) DPRINTF(("ath_bmiss_proc: pending %u\n", pending)); KASSERT(ic->ic_opmode == IEEE80211_M_STA, ("unexpect operating mode %u", ic->ic_opmode)); - if (ic->ic_state == IEEE80211_S_RUN) - ieee80211_new_state(ic, IEEE80211_S_SCAN, -1); + if (ic->ic_state == IEEE80211_S_RUN) { + /* + * Rather than go directly to scan state, try to + * reassociate first. If that fails then the state + * machine will drop us into scanning after timing + * out waiting for a probe response. + */ + ieee80211_new_state(ic, IEEE80211_S_ASSOC, -1); + } } static u_int |