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 <j@w1.fi>
master
Jouni Malinen 12 years ago
parent 4b15620609
commit 86ae2e8a42

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

Loading…
Cancel
Save