From: Andriy Tkachuk Date: Sun, 2 May 2010 08:21:19 +0000 (+0300) Subject: Update WPS IE on hostapd reconfiguration X-Git-Url: http://www.project-moonshot.org/gitweb/?a=commitdiff_plain;h=6deb41e73f74270656150e70cf6323276dd54f14;p=libeap.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 69e7ad7..a3f9719 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 9f0aa2a..04d3a85 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 bf28fb0..0b57403 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)