WPS: Fix hostapd runtime WPS configuration after Enrollee run
If the AP is configured with WPS, we need to update the local WPS data in order to provide correct credentials for Enrollees.
This commit is contained in:
parent
9c6d8e1db5
commit
6ce4b59342
1 changed files with 22 additions and 0 deletions
|
@ -234,6 +234,28 @@ static int hostapd_wps_cred_cb(void *ctx, const struct wps_credential *cred)
|
|||
if (hapd->conf->wps_cred_processing == 1)
|
||||
return 0;
|
||||
|
||||
os_memcpy(hapd->wps->ssid, cred->ssid, cred->ssid_len);
|
||||
hapd->wps->ssid_len = cred->ssid_len;
|
||||
hapd->wps->encr_types = cred->encr_type;
|
||||
hapd->wps->auth_types = cred->auth_type;
|
||||
if (cred->key == NULL) {
|
||||
os_free(hapd->wps->network_key);
|
||||
hapd->wps->network_key = NULL;
|
||||
hapd->wps->network_key_len = 0;
|
||||
} else {
|
||||
if (hapd->wps->network_key == NULL ||
|
||||
hapd->wps->network_key_len < cred->key_len) {
|
||||
hapd->wps->network_key_len = 0;
|
||||
os_free(hapd->wps->network_key);
|
||||
hapd->wps->network_key = os_malloc(cred->key_len);
|
||||
if (hapd->wps->network_key == NULL)
|
||||
return -1;
|
||||
}
|
||||
hapd->wps->network_key_len = cred->key_len;
|
||||
os_memcpy(hapd->wps->network_key, cred->key, cred->key_len);
|
||||
}
|
||||
hapd->wps->wps_state = WPS_STATE_CONFIGURED;
|
||||
|
||||
len = os_strlen(hapd->iface->config_fname) + 5;
|
||||
tmp_fname = os_malloc(len);
|
||||
if (tmp_fname == NULL)
|
||||
|
|
Loading…
Reference in a new issue