Update WPS IE on hostapd reconfiguration

This is needed to handle cases where WPS state may have changed and
hostapd is reloading its configuration.
This commit is contained in:
Andriy Tkachuk 2010-05-02 11:21:19 +03:00 committed by Jouni Malinen
parent 1491f8a785
commit 6deb41e73f
3 changed files with 17 additions and 0 deletions

View file

@ -97,6 +97,7 @@ int hostapd_reload_config(struct hostapd_iface *iface)
} }
ieee802_11_set_beacon(hapd); ieee802_11_set_beacon(hapd);
hostapd_update_wps(hapd);
if (hapd->conf->ssid.ssid_set && if (hapd->conf->ssid.ssid_set &&
hostapd_set_ssid(hapd, (u8 *) hapd->conf->ssid.ssid, hostapd_set_ssid(hapd, (u8 *) hapd->conf->ssid.ssid,

View file

@ -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, int hostapd_wps_add_pin(struct hostapd_data *hapd, const char *uuid,
const char *pin, int timeout) const char *pin, int timeout)
{ {

View file

@ -20,6 +20,7 @@
int hostapd_init_wps(struct hostapd_data *hapd, int hostapd_init_wps(struct hostapd_data *hapd,
struct hostapd_bss_config *conf); struct hostapd_bss_config *conf);
void hostapd_deinit_wps(struct hostapd_data *hapd); 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, int hostapd_wps_add_pin(struct hostapd_data *hapd, const char *uuid,
const char *pin, int timeout); const char *pin, int timeout);
int hostapd_wps_button_pushed(struct hostapd_data *hapd); 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, static inline int hostapd_wps_get_mib_sta(struct hostapd_data *hapd,
const u8 *addr, const u8 *addr,
char *buf, size_t buflen) char *buf, size_t buflen)