Lines Matching refs:data
42 struct bgscan_simple_data *data) in bgscan_simple_btm_query() argument
46 if (!data->use_btm_query || wpa_s->conf->disable_btm || in bgscan_simple_btm_query()
53 data->scan_action_count++; in bgscan_simple_btm_query()
54 mod = data->scan_action_count % (data->use_btm_query + 1); in bgscan_simple_btm_query()
55 if (mod >= data->use_btm_query) in bgscan_simple_btm_query()
60 mod, data->use_btm_query); in bgscan_simple_btm_query()
71 eloop_register_timeout(data->scan_interval, 0, in bgscan_simple_btm_query()
72 bgscan_simple_timeout, data, NULL); in bgscan_simple_btm_query()
79 struct bgscan_simple_data *data = eloop_ctx; in bgscan_simple_timeout() local
80 struct wpa_supplicant *wpa_s = data->wpa_s; in bgscan_simple_timeout()
83 if (bgscan_simple_btm_query(wpa_s, data)) in bgscan_simple_timeout()
88 params.ssids[0].ssid = data->ssid->ssid; in bgscan_simple_timeout()
89 params.ssids[0].ssid_len = data->ssid->ssid_len; in bgscan_simple_timeout()
90 params.freqs = data->ssid->scan_freq; in bgscan_simple_timeout()
101 eloop_register_timeout(data->scan_interval, 0, in bgscan_simple_timeout()
102 bgscan_simple_timeout, data, NULL); in bgscan_simple_timeout()
105 if (data->scan_interval == data->short_interval) { in bgscan_simple_timeout()
106 data->short_scan_count++; in bgscan_simple_timeout()
107 if (data->short_scan_count >= data->max_short_scans) { in bgscan_simple_timeout()
108 data->scan_interval = data->long_interval; in bgscan_simple_timeout()
112 } else if (data->short_scan_count > 0) { in bgscan_simple_timeout()
119 data->short_scan_count--; in bgscan_simple_timeout()
121 os_get_reltime(&data->last_bgscan); in bgscan_simple_timeout()
126 static int bgscan_simple_get_params(struct bgscan_simple_data *data, in bgscan_simple_get_params() argument
131 data->use_btm_query = 0; in bgscan_simple_get_params()
133 data->short_interval = atoi(params); in bgscan_simple_get_params()
139 data->signal_threshold = atoi(pos); in bgscan_simple_get_params()
147 data->long_interval = atoi(pos); in bgscan_simple_get_params()
151 data->use_btm_query = atoi(pos); in bgscan_simple_get_params()
162 struct bgscan_simple_data *data; in bgscan_simple_init() local
164 data = os_zalloc(sizeof(*data)); in bgscan_simple_init()
165 if (data == NULL) in bgscan_simple_init()
167 data->wpa_s = wpa_s; in bgscan_simple_init()
168 data->ssid = ssid; in bgscan_simple_init()
169 if (bgscan_simple_get_params(data, params) < 0) { in bgscan_simple_init()
170 os_free(data); in bgscan_simple_init()
173 if (data->short_interval <= 0) in bgscan_simple_init()
174 data->short_interval = 30; in bgscan_simple_init()
175 if (data->long_interval <= 0) in bgscan_simple_init()
176 data->long_interval = 30; in bgscan_simple_init()
180 data->signal_threshold, data->short_interval, in bgscan_simple_init()
181 data->long_interval); in bgscan_simple_init()
183 if (data->signal_threshold && in bgscan_simple_init()
184 wpa_drv_signal_monitor(wpa_s, data->signal_threshold, 4) < 0) { in bgscan_simple_init()
189 data->scan_interval = data->short_interval; in bgscan_simple_init()
190 data->max_short_scans = data->long_interval / data->short_interval + 1; in bgscan_simple_init()
191 if (data->signal_threshold) { in bgscan_simple_init()
192 wpa_s->signal_threshold = data->signal_threshold; in bgscan_simple_init()
196 siginfo.data.signal >= data->signal_threshold) in bgscan_simple_init()
197 data->scan_interval = data->long_interval; in bgscan_simple_init()
200 data->scan_interval); in bgscan_simple_init()
201 eloop_register_timeout(data->scan_interval, 0, bgscan_simple_timeout, in bgscan_simple_init()
202 data, NULL); in bgscan_simple_init()
210 os_get_reltime(&data->last_bgscan); in bgscan_simple_init()
212 return data; in bgscan_simple_init()
218 struct bgscan_simple_data *data = priv; in bgscan_simple_deinit() local
219 eloop_cancel_timeout(bgscan_simple_timeout, data, NULL); in bgscan_simple_deinit()
220 if (data->signal_threshold) { in bgscan_simple_deinit()
221 data->wpa_s->signal_threshold = 0; in bgscan_simple_deinit()
222 wpa_drv_signal_monitor(data->wpa_s, 0, 0); in bgscan_simple_deinit()
224 os_free(data); in bgscan_simple_deinit()
231 struct bgscan_simple_data *data = priv; in bgscan_simple_notify_scan() local
235 eloop_cancel_timeout(bgscan_simple_timeout, data, NULL); in bgscan_simple_notify_scan()
236 eloop_register_timeout(data->scan_interval, 0, bgscan_simple_timeout, in bgscan_simple_notify_scan()
237 data, NULL); in bgscan_simple_notify_scan()
262 struct bgscan_simple_data *data = priv; in bgscan_simple_notify_signal_change() local
266 if (data->short_interval == data->long_interval || in bgscan_simple_notify_signal_change()
267 data->signal_threshold == 0) in bgscan_simple_notify_signal_change()
274 if (data->scan_interval == data->long_interval && !above) { in bgscan_simple_notify_signal_change()
277 data->scan_interval = data->short_interval; in bgscan_simple_notify_signal_change()
279 if (now.sec > data->last_bgscan.sec + 1 && in bgscan_simple_notify_signal_change()
280 data->short_scan_count <= data->max_short_scans) in bgscan_simple_notify_signal_change()
288 else if (data->last_bgscan.sec + data->long_interval > in bgscan_simple_notify_signal_change()
289 now.sec + data->scan_interval) { in bgscan_simple_notify_signal_change()
294 eloop_cancel_timeout(bgscan_simple_timeout, data, in bgscan_simple_notify_signal_change()
296 eloop_register_timeout(data->scan_interval, 0, in bgscan_simple_notify_signal_change()
297 bgscan_simple_timeout, data, in bgscan_simple_notify_signal_change()
300 } else if (data->scan_interval == data->short_interval && above) { in bgscan_simple_notify_signal_change()
303 data->scan_interval = data->long_interval; in bgscan_simple_notify_signal_change()
304 eloop_cancel_timeout(bgscan_simple_timeout, data, NULL); in bgscan_simple_notify_signal_change()
305 eloop_register_timeout(data->scan_interval, 0, in bgscan_simple_notify_signal_change()
306 bgscan_simple_timeout, data, NULL); in bgscan_simple_notify_signal_change()
313 if (now.sec > data->last_bgscan.sec + 10) in bgscan_simple_notify_signal_change()
319 eloop_cancel_timeout(bgscan_simple_timeout, data, NULL); in bgscan_simple_notify_signal_change()
320 eloop_register_timeout(0, 0, bgscan_simple_timeout, data, in bgscan_simple_notify_signal_change()