From db03ddacffb7fadc5949b2fc37cdbd1aac5b3f6d Mon Sep 17 00:00:00 2001 From: Paul Stewart Date: Thu, 31 Mar 2011 18:02:37 +0300 Subject: [PATCH] bgscan-simple: Poll for signal in init It is not guaranteed that we will get a CQM signal shortly after setting up monitoring. In order to establish the correct initial background scanning rate, poll directly for the signal strength. Signed-off-by: Paul Stewart --- wpa_supplicant/bgscan_simple.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wpa_supplicant/bgscan_simple.c b/wpa_supplicant/bgscan_simple.c index 409d9ceae..e2692c4ba 100644 --- a/wpa_supplicant/bgscan_simple.c +++ b/wpa_supplicant/bgscan_simple.c @@ -122,6 +122,15 @@ static void * bgscan_simple_init(struct wpa_supplicant *wpa_s, } data->scan_interval = data->short_interval; + if (data->signal_threshold) { + /* Poll for signal info to set initial scan interval */ + struct wpa_signal_info siginfo; + if (wpa_drv_signal_poll(wpa_s, &siginfo) == 0 && + siginfo.current_signal >= data->signal_threshold) + data->scan_interval = data->long_interval; + } + wpa_printf(MSG_DEBUG, "bgscan simple: Init scan interval: %d", + data->scan_interval); eloop_register_timeout(data->scan_interval, 0, bgscan_simple_timeout, data, NULL);