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
diff --git a/src/ap/wps_hostapd.c b/src/ap/wps_hostapd.c
index fcbd89b..fc927f9 100644
--- a/src/ap/wps_hostapd.c
+++ b/src/ap/wps_hostapd.c
@@ -876,14 +876,6 @@
wps->model_description = hapd->conf->model_description;
wps->model_url = hapd->conf->model_url;
wps->upc = hapd->conf->upc;
-
- if (hostapd_wps_upnp_init(hapd, wps) < 0) {
- wpa_printf(MSG_ERROR, "Failed to initialize WPS UPnP");
- wps_registrar_deinit(wps->registrar);
- os_free(wps->network_key);
- os_free(wps);
- return -1;
- }
#endif /* CONFIG_WPS_UPNP */
hostapd_register_probereq_cb(hapd, hostapd_wps_probe_req_rx, hapd);
@@ -894,6 +886,28 @@
}
+int hostapd_init_wps_complete(struct hostapd_data *hapd)
+{
+ struct wps_context *wps = hapd->wps;
+
+ if (hapd->wps == NULL)
+ return 0;
+
+#ifdef CONFIG_WPS_UPNP
+ if (hostapd_wps_upnp_init(hapd, wps) < 0) {
+ wpa_printf(MSG_ERROR, "Failed to initialize WPS UPnP");
+ wps_registrar_deinit(wps->registrar);
+ os_free(wps->network_key);
+ os_free(wps);
+ hapd->wps = NULL;
+ return -1;
+ }
+#endif /* CONFIG_WPS_UPNP */
+
+ return 0;
+}
+
+
void hostapd_deinit_wps(struct hostapd_data *hapd)
{
eloop_cancel_timeout(hostapd_wps_reenable_ap_pin, hapd, NULL);