From 1fe68aef0b124bc7e1d3de83753353bb406a55d6 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Tue, 30 Jan 2024 11:13:52 -0800 Subject: [PATCH] station: reverse roam scan results for sorted known frequencies The known frequency list is now a sorted list and the roam scan results were not complying with this new requirement. The fix is easy though since the iteration order of the scan results does not matter (the roam candidates are inserted by rank). To fix the known frequencies order we can simply reverse the scan results list before iterating it. --- src/station.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/station.c b/src/station.c index 8a5f4e18..ea505ca2 100644 --- a/src/station.c +++ b/src/station.c @@ -2636,6 +2636,12 @@ static bool station_roam_scan_notify(int err, struct l_queue *bss_list, util_address_to_string(current_bss->addr), util_ssid_to_utf8(current_bss->ssid_len, current_bss->ssid)); + /* + * Reverse now so the known frequency list gets updated in the correct + * order (via network_bss_update). + */ + l_queue_reverse(bss_list); + while ((bss = l_queue_pop_head(bss_list))) { double rank; uint32_t kbps100 = DIV_ROUND_CLOSEST(bss->data_rate, 100000);