diff options
author | Eyal Shapira <eyal@wizery.com> | 2012-02-20 00:31:07 +0200 |
---|---|---|
committer | Arik Nemtsov <arik@wizery.com> | 2012-08-02 13:03:06 +0300 |
commit | 3eb6d0af511abbe2dd66b3aee3c54609d9fe571d (patch) | |
tree | 57c084e1fbb5e7e91a2ccca9765d258dabebd03a /wpa_supplicant | |
parent | 77402712f2b5d0903bb9d5c913bac9adcaeeff8c (diff) | |
download | external_wpa_supplicant_8_ti-3eb6d0af511abbe2dd66b3aee3c54609d9fe571d.zip external_wpa_supplicant_8_ti-3eb6d0af511abbe2dd66b3aee3c54609d9fe571d.tar.gz external_wpa_supplicant_8_ti-3eb6d0af511abbe2dd66b3aee3c54609d9fe571d.tar.bz2 |
Prevent roaming to a different ESS while connected
While connected to a certain ESS prevent roaming to a different
ESS AP even if its signal is better. This prevents an undesired
switch between networks in this example scenario:
2 network profiles configured Net1 and Net2. We're already associated
to an AP on the ESS Net1 and while walking with the device we get close
to an AP from ESS Net2. Before this change a decision to switch to
Net2 was made.
Diffstat (limited to 'wpa_supplicant')
-rw-r--r-- | wpa_supplicant/events.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index f834cb4..42c8793 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -665,6 +665,14 @@ static struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s, return NULL; } + if (wpa_s->wpa_state >= WPA_AUTHENTICATING && + wpa_s->current_ssid && + os_memcmp(wpa_s->current_ssid->ssid, ssid_, ssid_len) != 0) { + wpa_dbg(wpa_s, MSG_DEBUG, " skip - block roaming to " + "a different SSID while connected"); + return NULL; + } + wpa = wpa_ie_len > 0 || rsn_ie_len > 0; for (ssid = group; ssid; ssid = ssid->pnext) { |