From 9148ae58d04ac9baed3d56a70ce594492dab3769 Mon Sep 17 00:00:00 2001 From: Yoni Divinsky Date: Mon, 25 Jun 2012 12:20:37 +0300 Subject: [PATCH] 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 --- src/wps/wps_registrar.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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