hostapd: Fix PBC config method of WSC IE in Beacon/Probe Response

In AP which supports WPSv2 with only virtual push button, when PBC is
called, the WSC IE should include Selected Registrar Configuration
Methods attribute with the bit of the physical push button not set.

Signed-hostap: Yoni Divinsky <yoni.divinsky@ti.com>
This commit is contained in:
Yoni Divinsky 2012-06-25 12:20:37 +03:00 committed by Jouni Malinen
parent f115560c21
commit 9148ae58d0

View file

@ -480,12 +480,16 @@ static void wps_set_pushbutton(u16 *methods, u16 conf_methods)
{ {
*methods |= WPS_CONFIG_PUSHBUTTON; *methods |= WPS_CONFIG_PUSHBUTTON;
#ifdef CONFIG_WPS2 #ifdef CONFIG_WPS2
if (conf_methods & WPS_CONFIG_VIRT_PUSHBUTTON) if ((conf_methods & WPS_CONFIG_VIRT_PUSHBUTTON) ==
WPS_CONFIG_VIRT_PUSHBUTTON)
*methods |= WPS_CONFIG_VIRT_PUSHBUTTON; *methods |= WPS_CONFIG_VIRT_PUSHBUTTON;
if (conf_methods & WPS_CONFIG_PHY_PUSHBUTTON) if ((conf_methods & WPS_CONFIG_PHY_PUSHBUTTON) ==
WPS_CONFIG_PHY_PUSHBUTTON)
*methods |= WPS_CONFIG_PHY_PUSHBUTTON; *methods |= WPS_CONFIG_PHY_PUSHBUTTON;
if (!(*methods & (WPS_CONFIG_VIRT_PUSHBUTTON | if ((*methods & WPS_CONFIG_VIRT_PUSHBUTTON) !=
WPS_CONFIG_PHY_PUSHBUTTON))) { WPS_CONFIG_VIRT_PUSHBUTTON &&
(*methods & WPS_CONFIG_PHY_PUSHBUTTON) !=
WPS_CONFIG_PHY_PUSHBUTTON) {
/* /*
* Required to include virtual/physical flag, but we were not * Required to include virtual/physical flag, but we were not
* configured with push button type, so have to default to one * configured with push button type, so have to default to one