WPS: Require PBC match with wps_pbc that specifies BSSID
The WPS mode was already verified when the AP was configured for WPA/WPA2, but this was not done with AP that was in open mode. Fix this by allowing wpa_supplicant_ssid_bss_match() to be called in non-WPA configuration, too. With this change, wps_pbc BSSID command will wait until the specified target AP is in active PBC mode before trying to connect to it.
This commit is contained in:
parent
a8401116e1
commit
cc5e390d28
1 changed files with 7 additions and 3 deletions
|
@ -420,12 +420,16 @@ static int wpa_supplicant_ssid_bss_match(struct wpa_supplicant *wpa_s,
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (proto_match == 0)
|
||||
if ((ssid->proto & (WPA_PROTO_WPA | WPA_PROTO_RSN)) &&
|
||||
proto_match == 0) {
|
||||
wpa_printf(MSG_DEBUG, " skip - no WPA/RSN proto match");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Allow in non-WPA configuration */
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static int freq_allowed(int *freqs, int freq)
|
||||
{
|
||||
|
@ -539,7 +543,7 @@ static struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s,
|
|||
continue;
|
||||
}
|
||||
|
||||
if (wpa && !wpa_supplicant_ssid_bss_match(wpa_s, ssid, bss))
|
||||
if (!wpa_supplicant_ssid_bss_match(wpa_s, ssid, bss))
|
||||
continue;
|
||||
|
||||
if (!wpa &&
|
||||
|
|
Loading…
Reference in a new issue