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