From: Andriy Tkachuk Date: Sun, 2 May 2010 08:21:19 +0000 (+0300) Subject: Update WPS IE on hostapd reconfiguration X-Git-Tag: hostap-1-bp~1303 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6deb41e73f74270656150e70cf6323276dd54f14;p=thirdparty%2Fhostap.git Update WPS IE on hostapd reconfiguration This is needed to handle cases where WPS state may have changed and hostapd is reloading its configuration. --- diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 69e7ad756..a3f97196d 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -97,6 +97,7 @@ int hostapd_reload_config(struct hostapd_iface *iface) } ieee802_11_set_beacon(hapd); + hostapd_update_wps(hapd); if (hapd->conf->ssid.ssid_set && hostapd_set_ssid(hapd, (u8 *) hapd->conf->ssid.ssid, diff --git a/src/ap/wps_hostapd.c b/src/ap/wps_hostapd.c index 9f0aa2ac4..04d3a85b3 100644 --- a/src/ap/wps_hostapd.c +++ b/src/ap/wps_hostapd.c @@ -686,6 +686,17 @@ void hostapd_deinit_wps(struct hostapd_data *hapd) } +void hostapd_update_wps(struct hostapd_data *hapd) +{ + if (hapd->wps == NULL) + return; + if (hapd->conf->wps_state) + wps_registrar_update_ie(hapd->wps->registrar); + else + hostapd_deinit_wps(hapd); +} + + int hostapd_wps_add_pin(struct hostapd_data *hapd, const char *uuid, const char *pin, int timeout) { diff --git a/src/ap/wps_hostapd.h b/src/ap/wps_hostapd.h index bf28fb0f3..0b574032e 100644 --- a/src/ap/wps_hostapd.h +++ b/src/ap/wps_hostapd.h @@ -20,6 +20,7 @@ int hostapd_init_wps(struct hostapd_data *hapd, struct hostapd_bss_config *conf); void hostapd_deinit_wps(struct hostapd_data *hapd); +void hostapd_update_wps(struct hostapd_data *hapd); int hostapd_wps_add_pin(struct hostapd_data *hapd, const char *uuid, const char *pin, int timeout); int hostapd_wps_button_pushed(struct hostapd_data *hapd); @@ -40,6 +41,10 @@ static inline void hostapd_deinit_wps(struct hostapd_data *hapd) { } +static inline void hostapd_update_wps(struct hostapd_data *hapd) +{ +} + static inline int hostapd_wps_get_mib_sta(struct hostapd_data *hapd, const u8 *addr, char *buf, size_t buflen)