mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
station: fix OWE scan logic with autoconnect
station_set_scan_results takes an autoconnect flag which was being set true in both regular/quick autoconnect scans. Since OWE networks are processed after setting the scan results IWD could end up connecting to a network before all the OWE hidden networks are populated. To fix this regular/quick autoconnect results will set the flag to false, then process OWE networks, then start autoconnect. If any OWE network scans are pending station_autoconnect_start will fail but will pick back up after the hidden OWE scan.
This commit is contained in:
parent
ac78076663
commit
73cd3578d9
@ -1231,10 +1231,13 @@ static bool new_scan_results(int err, struct l_queue *bss_list,
|
||||
if (err)
|
||||
return false;
|
||||
|
||||
station_set_scan_results(station, bss_list, freqs, true);
|
||||
station_set_scan_results(station, bss_list, freqs, false);
|
||||
|
||||
station_process_owe_transition_networks(station);
|
||||
|
||||
station->autoconnect_can_start = true;
|
||||
station_autoconnect_start(station);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1303,10 +1306,13 @@ static bool station_quick_scan_results(int err, struct l_queue *bss_list,
|
||||
if (err)
|
||||
goto done;
|
||||
|
||||
station_set_scan_results(station, bss_list, freqs, true);
|
||||
station_set_scan_results(station, bss_list, freqs, false);
|
||||
|
||||
station_process_owe_transition_networks(station);
|
||||
|
||||
station->autoconnect_can_start = true;
|
||||
station_autoconnect_start(station);
|
||||
|
||||
done:
|
||||
if (station->state == STATION_STATE_AUTOCONNECT_QUICK)
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user