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>
This commit is contained in:
parent
4b15620609
commit
86ae2e8a42
1 changed files with 13 additions and 9 deletions
|
@ -2619,17 +2619,21 @@ 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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
shared_freq = wpa_drv_shared_freq(wpa_s);
|
||||
if (shared_freq > 0 && shared_freq != freq) {
|
||||
|
|
Loading…
Reference in a new issue