aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/driver.h1
-rw-r--r--src/drivers/driver_common.c2
-rw-r--r--src/drivers/driver_nl80211.c4
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;