diff options
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; |