From 158211b2db37df7d9a684e3de21ce5ee003c7d0b Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 24 Nov 2014 10:57:38 +0200 Subject: [PATCH] WNM: Use country code, if available, to help in channel mapping The country code from the current AP needs to be used in ieee80211_chan_to_freq() to support cases where non-global operating class table is used. Signed-off-by: Jouni Malinen --- wpa_supplicant/wnm_sta.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index 424c634a5..38be02b73 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -411,7 +411,17 @@ static void wnm_parse_neighbor_report_elem(struct neighbor_report *rep, static int wnm_nei_get_chan(struct wpa_supplicant *wpa_s, u8 op_class, u8 chan) { - return ieee80211_chan_to_freq(NULL, op_class, chan); + struct wpa_bss *bss = wpa_s->current_bss; + const char *country = NULL; + + if (bss) { + const u8 *elem = wpa_bss_get_ie(bss, WLAN_EID_COUNTRY); + + if (elem && elem[1] >= 2) + country = (const char *) (elem + 2); + } + + return ieee80211_chan_to_freq(country, op_class, chan); }