In case of a P2PS PD, allow keypad, display, and P2PS WPS config
methods. For a legacy PD, allow keypad, display, and pushbutton methods.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
u8 group_mac[ETH_ALEN];
int passwd_id = DEV_PW_DEFAULT;
u16 config_methods;
+ u16 allowed_config_methods = WPS_CONFIG_DISPLAY | WPS_CONFIG_KEYPAD;
if (p2p_parse(data, len, &msg))
return;
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
}
- if (!(msg.wps_config_methods &
- (WPS_CONFIG_DISPLAY | WPS_CONFIG_KEYPAD |
- WPS_CONFIG_PUSHBUTTON | WPS_CONFIG_P2PS))) {
+ if (msg.adv_id)
+ allowed_config_methods |= WPS_CONFIG_P2PS;
+ else
+ allowed_config_methods |= WPS_CONFIG_PUSHBUTTON;
+
+ if (!(msg.wps_config_methods & allowed_config_methods)) {
p2p_dbg(p2p, "Unsupported Config Methods in Provision Discovery Request");
goto out;
}