diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2011-05-16 18:35:42 +0300 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2011-05-24 15:58:05 -0700 |
commit | 87fd279308af3f806848c8f2ab65ef18c6ac4c30 (patch) | |
tree | 0bd20d56a780a19f210bca634500e8f5f66f52e2 /src/wps | |
parent | 29991f40caccd6c45cd7c56ca597f370a4f2b9eb (diff) | |
download | external_wpa_supplicant_8-87fd279308af3f806848c8f2ab65ef18c6ac4c30.zip external_wpa_supplicant_8-87fd279308af3f806848c8f2ab65ef18c6ac4c30.tar.gz external_wpa_supplicant_8-87fd279308af3f806848c8f2ab65ef18c6ac4c30.tar.bz2 |
Accumulative patch from commit 6d28fb9627155929012cda944aacd5a52ce7051a
nl80211: Fetch assoc_freq from scan table for connect event
nl80211: Filter out duplicated BSS table entries from scan results
Update BSS table entry if roaming event indicates frequency change
WPS: Remove obsolete note about lack for WPS ER support
P2P: Include operating class 124 (channels 149,153,157,161)
Include nl80211 driver wrapper in default configuration for hostapd
Better messages when channel cannot be used in AP mode
WPS: Add a workaround for Windows 7 capability discovery for PBC
WPS UPnP: Fix UPnP initialization for non-bridge case with some drivers
Fix regression in RSN pre-authentication candidate list generation
commit 6d28fb9627155929012cda944aacd5a52ce7051a
Change-Id: I3c68dad5fe323b1d86aa585c564a75e4fc1a2ea1
Diffstat (limited to 'src/wps')
-rw-r--r-- | src/wps/wps.c | 1 | ||||
-rw-r--r-- | src/wps/wps.h | 8 | ||||
-rw-r--r-- | src/wps/wps_enrollee.c | 9 | ||||
-rw-r--r-- | src/wps/wps_i.h | 1 |
4 files changed, 18 insertions, 1 deletions
diff --git a/src/wps/wps.c b/src/wps/wps.c index 7564d60..5c8c25f 100644 --- a/src/wps/wps.c +++ b/src/wps/wps.c @@ -113,6 +113,7 @@ struct wps_data * wps_init(const struct wps_config *cfg) os_memcpy(data->p2p_dev_addr, cfg->p2p_dev_addr, ETH_ALEN); data->use_psk_key = cfg->use_psk_key; + data->pbc_in_m1 = cfg->pbc_in_m1; return data; } diff --git a/src/wps/wps.h b/src/wps/wps.h index 918273d..3e4c218 100644 --- a/src/wps/wps.h +++ b/src/wps/wps.h @@ -187,6 +187,14 @@ struct wps_config { * to %NULL to indicate the station does not have a P2P Device Address. */ const u8 *p2p_dev_addr; + + /** + * pbc_in_m1 - Do not remove PushButton config method in M1 (AP) + * + * This can be used to enable a workaround to allow Windows 7 to use + * PBC with the AP. + */ + int pbc_in_m1; }; struct wps_data * wps_init(const struct wps_config *cfg); diff --git a/src/wps/wps_enrollee.c b/src/wps/wps_enrollee.c index 390254e..5b3c045 100644 --- a/src/wps/wps_enrollee.c +++ b/src/wps/wps_enrollee.c @@ -133,10 +133,17 @@ static struct wpabuf * wps_build_m1(struct wps_data *wps) return NULL; config_methods = wps->wps->config_methods; - if (wps->wps->ap) { + if (wps->wps->ap && !wps->pbc_in_m1 && + (wps->dev_password_len != 0 || + (config_methods & WPS_CONFIG_DISPLAY))) { /* * These are the methods that the AP supports as an Enrollee * for adding external Registrars, so remove PushButton. + * + * As a workaround for Windows 7 mechanism for probing WPS + * capabilities from M1, leave PushButton option if no PIN + * method is available or if WPS configuration enables PBC + * workaround. */ config_methods &= ~WPS_CONFIG_PUSHBUTTON; #ifdef CONFIG_WPS2 diff --git a/src/wps/wps_i.h b/src/wps/wps_i.h index 437999b..bdb6da2 100644 --- a/src/wps/wps_i.h +++ b/src/wps/wps_i.h @@ -119,6 +119,7 @@ struct wps_data { int use_psk_key; u8 p2p_dev_addr[ETH_ALEN]; /* P2P Device Address of the client or * 00:00:00:00:00:00 if not a P2p client */ + int pbc_in_m1; }; |