WPS ER: Add command for configuring an AP
wps_er_config can now be used to configure an AP. It is similar to wps_er_learn, but instead of only learning the current AP settings, it continues to send M8 with the new settings for the AP.
This commit is contained in:
parent
3085b8052e
commit
7d6640a62c
7 changed files with 252 additions and 7 deletions
|
@ -330,6 +330,50 @@ static int wpa_supplicant_ctrl_iface_wps_er_learn(struct wpa_supplicant *wpa_s,
|
|||
*pin++ = '\0';
|
||||
return wpas_wps_er_learn(wpa_s, uuid, pin);
|
||||
}
|
||||
|
||||
|
||||
static int wpa_supplicant_ctrl_iface_wps_er_config(
|
||||
struct wpa_supplicant *wpa_s, char *cmd)
|
||||
{
|
||||
char *pin;
|
||||
char *new_ssid;
|
||||
char *new_auth;
|
||||
char *new_encr;
|
||||
char *new_key;
|
||||
struct wps_new_ap_settings ap;
|
||||
|
||||
pin = os_strchr(cmd, ' ');
|
||||
if (pin == NULL)
|
||||
return -1;
|
||||
*pin++ = '\0';
|
||||
|
||||
new_ssid = os_strchr(pin, ' ');
|
||||
if (new_ssid == NULL)
|
||||
return -1;
|
||||
*new_ssid++ = '\0';
|
||||
|
||||
new_auth = os_strchr(new_ssid, ' ');
|
||||
if (new_auth == NULL)
|
||||
return -1;
|
||||
*new_auth++ = '\0';
|
||||
|
||||
new_encr = os_strchr(new_auth, ' ');
|
||||
if (new_encr == NULL)
|
||||
return -1;
|
||||
*new_encr++ = '\0';
|
||||
|
||||
new_key = os_strchr(new_encr, ' ');
|
||||
if (new_key == NULL)
|
||||
return -1;
|
||||
*new_key++ = '\0';
|
||||
|
||||
os_memset(&ap, 0, sizeof(ap));
|
||||
ap.ssid_hex = new_ssid;
|
||||
ap.auth = new_auth;
|
||||
ap.encr = new_encr;
|
||||
ap.key_hex = new_key;
|
||||
return wpas_wps_er_config(wpa_s, cmd, pin, &ap);
|
||||
}
|
||||
#endif /* CONFIG_WPS_ER */
|
||||
|
||||
#endif /* CONFIG_WPS */
|
||||
|
@ -1810,6 +1854,9 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
|
|||
} else if (os_strncmp(buf, "WPS_ER_LEARN ", 13) == 0) {
|
||||
if (wpa_supplicant_ctrl_iface_wps_er_learn(wpa_s, buf + 13))
|
||||
reply_len = -1;
|
||||
} else if (os_strncmp(buf, "WPS_ER_CONFIG ", 14) == 0) {
|
||||
if (wpa_supplicant_ctrl_iface_wps_er_config(wpa_s, buf + 14))
|
||||
reply_len = -1;
|
||||
#endif /* CONFIG_WPS_ER */
|
||||
#endif /* CONFIG_WPS */
|
||||
#ifdef CONFIG_IBSS_RSN
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue