diff options
author | Eliad Peller <eliad@wizery.com> | 2012-02-13 23:58:08 +0200 |
---|---|---|
committer | Arik Nemtsov <arik@wizery.com> | 2012-08-02 13:03:06 +0300 |
commit | beb879c8252d0edf2a79346ad9c531ef477d77a9 (patch) | |
tree | 14a1dccf984eb1f342a7c3ee597f20ce1b977bc0 /src/drivers | |
parent | a523a2884fe83c111c8f3855bf36620c7d79b016 (diff) | |
download | external_wpa_supplicant_8_ti-beb879c8252d0edf2a79346ad9c531ef477d77a9.zip external_wpa_supplicant_8_ti-beb879c8252d0edf2a79346ad9c531ef477d77a9.tar.gz external_wpa_supplicant_8_ti-beb879c8252d0edf2a79346ad9c531ef477d77a9.tar.bz2 |
initiate roaming on beacon_loss
Add wpa_s->roaming to indicate (forced) roaming request.
set it on beacon_loss event.
(no need to disconnect if there is no available ap, as
the driver will send disassoc after some time)
Signed-off-by: Eliad Peller <eliad@wizery.com>
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/driver.h | 1 | ||||
-rw-r--r-- | src/drivers/driver_common.c | 2 | ||||
-rw-r--r-- | src/drivers/driver_nl80211.c | 4 |
3 files changed, 7 insertions, 0 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h index accc1e6..3933165 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2879,6 +2879,7 @@ enum wpa_event_type { */ EVENT_ROAMING_DISABLED, + EVENT_START_ROAMING, /** * EVENT_INTERFACE_ENABLED - Notify that interface was enabled * diff --git a/src/drivers/driver_common.c b/src/drivers/driver_common.c index c2af408..5e4dc89 100644 --- a/src/drivers/driver_common.c +++ b/src/drivers/driver_common.c @@ -27,6 +27,7 @@ void wpa_scan_results_free(struct wpa_scan_results *res) const char * event_to_string(enum wpa_event_type event) { #define E2S(n) case EVENT_ ## n: return #n + switch (event) { E2S(ASSOC); E2S(DISASSOC); @@ -80,6 +81,7 @@ const char * event_to_string(enum wpa_event_type event) E2S(CH_SWITCH); E2S(ROAMING_ENABLED); E2S(ROAMING_DISABLED); + E2S(START_ROAMING); } return "UNKNOWN"; diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 2806d0f..a06f6f1 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -1896,6 +1896,10 @@ static void nl80211_cqm_event(struct wpa_driver_nl80211_data *drv, wpa_printf(MSG_DEBUG, "nl80211: Connection quality monitor " "event: RSSI low"); ed.signal_change.above_threshold = 0; + } else if (event == NL80211_CQM_RSSI_BEACON_LOSS_EVENT) { + wpa_printf(MSG_DEBUG, "nl80211: Connection quality monitor " + "event: beacon loss!"); + wpa_supplicant_event(drv->ctx, EVENT_START_ROAMING, &ed); } else return; |