From: Jouni Malinen Date: Sun, 8 Apr 2012 17:42:45 +0000 (+0300) Subject: P2P: Fix shared freq check and support AP mode validation X-Git-Tag: hostap_2_0~741 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=86ae2e8a42c79d6dba94f3a025f84abb5fd98c6c;p=thirdparty%2Fhostap.git P2P: Fix shared freq check and support AP mode validation The previous commit did not use the correct pointer in all operations and was specific to station mode interfaces. Fix and extend it to work with AP/GO interfaces, too. Signed-hostap: Jouni Malinen --- diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index fa675fe26..9d31fdbb9 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -2619,15 +2619,19 @@ static int wpas_check_freq_conflict(struct wpa_supplicant *wpa_s, int freq) continue; if (iface->current_ssid == NULL || iface->assoc_freq == 0) continue; - if (wpa_drv_get_bssid(iface, bssid) == 0) { - if (freq != (int) wpa_s->assoc_freq) { - wpa_printf(MSG_DEBUG, "P2P: Frequency " - "conflict - %s connected on %d MHz " - "- new connection on %d MHz", - wpa_s->ifname, wpa_s->assoc_freq, - freq); - return 1; - } + if (iface->current_ssid->mode == WPAS_MODE_AP || + iface->current_ssid->mode == WPAS_MODE_P2P_GO) + shared_freq = iface->current_ssid->frequency; + else if (wpa_drv_get_bssid(iface, bssid) == 0) + shared_freq = iface->assoc_freq; + else + shared_freq = 0; + + if (shared_freq && freq != shared_freq) { + wpa_printf(MSG_DEBUG, "P2P: Frequency conflict - %s " + "connected on %d MHz - new connection on " + "%d MHz", iface->ifname, shared_freq, freq); + return 1; } }