wpa_supplicant: Search BSS list from back to front

This fixes an issue seen in our wifi testbed, where we frequently
switch the SSID of the AP. wpa_supplicant's BSS list will have, for
example both <bssid, "Check11b"> (from the previous test) and <bssid,
"Check11g"> (from the current test) - note that the bssid is the same for
both. The (old) D-Bus API for fetching scan responses from wpa_supplicant
is fetch-by-bssid, so the caller (flimflam) incorrectly believes we're
associated with <bssid, "Check11b">.
This commit is contained in:
Nathan Williams 2011-03-20 12:06:36 +02:00 committed by Jouni Malinen
parent 2b65b30da8
commit bc8397822b

View file

@ -492,7 +492,7 @@ struct wpa_bss * wpa_bss_get_bssid(struct wpa_supplicant *wpa_s,
const u8 *bssid) const u8 *bssid)
{ {
struct wpa_bss *bss; struct wpa_bss *bss;
dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) { dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0) if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
return bss; return bss;
} }