diff mbox series

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

Message ID 20240130191352.85852-3-prestwoj@gmail.com (mailing list archive)
State Accepted, archived
Headers show
Series [1/3] netdev: fix setting a uint8_t with l_get_le16 | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
prestwoj/iwd-ci-gitlint success GitLint

Commit Message

James Prestwood Jan. 30, 2024, 7:13 p.m. UTC
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 mbox series

Patch

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