This makes it easier to figure out which AP is sending invalid
Beacon or Probe Response frames.
#ifdef CONFIG_WPS_STRICT
int wps_validate_beacon(const struct wpabuf *wps_ie);
#ifdef CONFIG_WPS_STRICT
int wps_validate_beacon(const struct wpabuf *wps_ie);
-int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe);
+int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe,
+ const u8 *addr);
int wps_validate_probe_req(const struct wpabuf *wps_ie);
int wps_validate_assoc_req(const struct wpabuf *wps_ie);
int wps_validate_assoc_resp(const struct wpabuf *wps_ie);
int wps_validate_probe_req(const struct wpabuf *wps_ie);
int wps_validate_assoc_req(const struct wpabuf *wps_ie);
int wps_validate_assoc_resp(const struct wpabuf *wps_ie);
}
static inline int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie,
}
static inline int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie,
+ int probe, const u8 *addr)
-int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe)
+int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe,
+ const u8 *addr)
{
struct wps_parse_attr attr;
int wps2, sel_reg;
{
struct wps_parse_attr attr;
int wps2, sel_reg;
wps_validate_authorized_macs(attr.authorized_macs,
attr.authorized_macs_len, 0)) {
wpa_printf(MSG_INFO, "WPS-STRICT: Invalid %sProbe Response "
wps_validate_authorized_macs(attr.authorized_macs,
attr.authorized_macs_len, 0)) {
wpa_printf(MSG_INFO, "WPS-STRICT: Invalid %sProbe Response "
- "frame", probe ? "" : "Beacon/");
+ "frame from " MACSTR, probe ? "" : "Beacon/",
+ MAC2STR(addr));
#ifdef WPS_STRICT_WPS2
if (wps2)
return -1;
#ifdef WPS_STRICT_WPS2
if (wps2)
return -1;
#ifdef CONFIG_WPS_STRICT
if (wps_ie) {
if (wps_validate_beacon_probe_resp(wps_ie, bss->beacon_ie_len >
#ifdef CONFIG_WPS_STRICT
if (wps_ie) {
if (wps_validate_beacon_probe_resp(wps_ie, bss->beacon_ie_len >
ret = 0;
if (bss->beacon_ie_len) {
struct wpabuf *bcn_wps;
ret = 0;
if (bss->beacon_ie_len) {
struct wpabuf *bcn_wps;