summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-11-17 19:02:18 +0000
committersam <sam@FreeBSD.org>2003-11-17 19:02:18 +0000
commit846a1e2173568edc27e7f1d9f2fb50f10dbd4084 (patch)
treee6c0132f2c30c919b24fb69f1fdfacea897e77a6 /sys/dev/ath
parent9ade8a4b037bfeef40687525cd8e9efdbe35784b (diff)
downloadFreeBSD-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/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c11
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
OpenPOWER on IntegriCloud