[PATCH 3/3] station: reverse roam scan results for sorted known frequencies

James Prestwood
2024-01-30T19:13:58Z

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);
--
2.34.1