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:
Jouni Malinen 2010-12-28 08:56:23 +02:00 committed by Jouni Malinen
parent a8401116e1
commit cc5e390d28

View file

@ -420,10 +420,14 @@ static int wpa_supplicant_ssid_bss_match(struct wpa_supplicant *wpa_s,
return 1; 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"); wpa_printf(MSG_DEBUG, " skip - no WPA/RSN proto match");
return 0;
}
return 0; /* Allow in non-WPA configuration */
return 1;
} }
@ -539,7 +543,7 @@ static struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s,
continue; continue;
} }
if (wpa && !wpa_supplicant_ssid_bss_match(wpa_s, ssid, bss)) if (!wpa_supplicant_ssid_bss_match(wpa_s, ssid, bss))
continue; continue;
if (!wpa && if (!wpa &&