diff -up wpa_supplicant-0.7.3/wpa_supplicant/events.c.foo wpa_supplicant-0.7.3/wpa_supplicant/events.c
--- wpa_supplicant-0.7.3/wpa_supplicant/events.c.foo 2012-06-12 12:03:36.172962193 -0500
+++ wpa_supplicant-0.7.3/wpa_supplicant/events.c 2012-06-12 12:03:51.388771973 -0500
@@ -871,16 +871,14 @@ static int wpa_supplicant_need_to_roam(s
min_diff = 2;
if (current_bss->level < 0) {
- if (current_bss->level < -85)
- min_diff = 1;
- else if (current_bss->level < -80)
- min_diff = 2;
- else if (current_bss->level < -75)
- min_diff = 3;
- else if (current_bss->level < -70)
+ if (current_bss->level < -75)
min_diff = 4;
+ else if (current_bss->level < -70)
+ min_diff = 6;
+ else if (current_bss->level < -65)
+ min_diff = 8;
else
- min_diff = 5;
+ min_diff = 15;
}
if (abs(current_bss->level - selected->level) < min_diff) {
wpa_dbg(wpa_s, MSG_DEBUG, "Skip roam - too small difference "