diff options
author | Subrat Dash <sdash@qca.qualcomm.com> | 2011-11-30 16:48:14 +0200 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2011-11-30 16:48:14 +0200 |
commit | 910b482d9bdab425eb3e2e8a3e05bc9df1335ff2 (patch) | |
tree | 9cda8463c9f2742e872282decfde2f6d420a9176 /src/wps | |
parent | d6d731b848d8d44b5a1db2e6d6b56625f2b83859 (diff) | |
download | external_wpa_supplicant_8_ti-910b482d9bdab425eb3e2e8a3e05bc9df1335ff2.zip external_wpa_supplicant_8_ti-910b482d9bdab425eb3e2e8a3e05bc9df1335ff2.tar.gz external_wpa_supplicant_8_ti-910b482d9bdab425eb3e2e8a3e05bc9df1335ff2.tar.bz2 |
WPS: Fix stopping of active WPS operation on dual concurrent AP
When hostapd controls multiple radios, WPS operations are started on
all interfaces. However, when the provisioning run had been completed
successfully, actiove WPS mode was stopped only a single interface. Fix
this to iterate through all interfaces so that this is handled
consistently with the starting of WPS operation.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'src/wps')
-rw-r--r-- | src/wps/wps.h | 1 | ||||
-rw-r--r-- | src/wps/wps_registrar.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/wps/wps.h b/src/wps/wps.h index cdafc27..4986881 100644 --- a/src/wps/wps.h +++ b/src/wps/wps.h @@ -784,6 +784,7 @@ int wps_registrar_wps_cancel(struct wps_registrar *reg); int wps_registrar_unlock_pin(struct wps_registrar *reg, const u8 *uuid); int wps_registrar_button_pushed(struct wps_registrar *reg, const u8 *p2p_dev_addr); +void wps_registrar_complete(struct wps_registrar *registrar, const u8 *uuid_e); void wps_registrar_probe_req_rx(struct wps_registrar *reg, const u8 *addr, const struct wpabuf *wps_data, int p2p_wildcard); diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c index 66ed410..e59edb8 100644 --- a/src/wps/wps_registrar.c +++ b/src/wps/wps_registrar.c @@ -941,6 +941,18 @@ static void wps_registrar_pin_completed(struct wps_registrar *reg) } +void wps_registrar_complete(struct wps_registrar *registrar, const u8 *uuid_e) +{ + if (registrar->pbc) { + wps_registrar_remove_pbc_session(registrar, + uuid_e); + wps_registrar_pbc_completed(registrar); + } else { + wps_registrar_pin_completed(registrar); + } +} + + int wps_registrar_wps_cancel(struct wps_registrar *reg) { if (reg->pbc) { |