From: Yoni Divinsky Date: Mon, 25 Jun 2012 09:20:37 +0000 (+0300) Subject: hostapd: Fix PBC config method of WSC IE in Beacon/Probe Response X-Git-Tag: hostap_2_0~612 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9148ae58d04ac9baed3d56a70ce594492dab3769;p=thirdparty%2Fhostap.git 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 --- diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c index e6ec04cf7..2c4b52094 100644 --- a/src/wps/wps_registrar.c +++ b/src/wps/wps_registrar.c @@ -480,12 +480,16 @@ static void wps_set_pushbutton(u16 *methods, u16 conf_methods) { *methods |= WPS_CONFIG_PUSHBUTTON; #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; - if (conf_methods & WPS_CONFIG_PHY_PUSHBUTTON) + if ((conf_methods & WPS_CONFIG_PHY_PUSHBUTTON) == + WPS_CONFIG_PHY_PUSHBUTTON) *methods |= WPS_CONFIG_PHY_PUSHBUTTON; - if (!(*methods & (WPS_CONFIG_VIRT_PUSHBUTTON | - WPS_CONFIG_PHY_PUSHBUTTON))) { + if ((*methods & WPS_CONFIG_VIRT_PUSHBUTTON) != + WPS_CONFIG_VIRT_PUSHBUTTON && + (*methods & WPS_CONFIG_PHY_PUSHBUTTON) != + WPS_CONFIG_PHY_PUSHBUTTON) { /* * Required to include virtual/physical flag, but we were not * configured with push button type, so have to default to one