hostapd: Introduce hostapd_ctrl_iface_get_key_mgmt()
This function will be used in DUP_NETWORK command implementation. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
b328145296
commit
c497a024a2
1 changed files with 92 additions and 70 deletions
|
@ -1058,67 +1058,16 @@ static int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
|
||||||
#endif /* CONFIG_WNM */
|
#endif /* CONFIG_WNM */
|
||||||
|
|
||||||
|
|
||||||
static int hostapd_ctrl_iface_get_config(struct hostapd_data *hapd,
|
static int hostapd_ctrl_iface_get_key_mgmt(struct hostapd_data *hapd,
|
||||||
char *buf, size_t buflen)
|
char *buf, size_t buflen)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = 0;
|
||||||
char *pos, *end;
|
char *pos, *end;
|
||||||
|
|
||||||
pos = buf;
|
pos = buf;
|
||||||
end = buf + buflen;
|
end = buf + buflen;
|
||||||
|
|
||||||
ret = os_snprintf(pos, end - pos, "bssid=" MACSTR "\n"
|
WPA_ASSERT(hapd->conf->wpa_key_mgmt);
|
||||||
"ssid=%s\n",
|
|
||||||
MAC2STR(hapd->own_addr),
|
|
||||||
wpa_ssid_txt(hapd->conf->ssid.ssid,
|
|
||||||
hapd->conf->ssid.ssid_len));
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
|
|
||||||
#ifdef CONFIG_WPS
|
|
||||||
ret = os_snprintf(pos, end - pos, "wps_state=%s\n",
|
|
||||||
hapd->conf->wps_state == 0 ? "disabled" :
|
|
||||||
(hapd->conf->wps_state == 1 ? "not configured" :
|
|
||||||
"configured"));
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
|
|
||||||
if (hapd->conf->wps_state && hapd->conf->wpa &&
|
|
||||||
hapd->conf->ssid.wpa_passphrase) {
|
|
||||||
ret = os_snprintf(pos, end - pos, "passphrase=%s\n",
|
|
||||||
hapd->conf->ssid.wpa_passphrase);
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hapd->conf->wps_state && hapd->conf->wpa &&
|
|
||||||
hapd->conf->ssid.wpa_psk &&
|
|
||||||
hapd->conf->ssid.wpa_psk->group) {
|
|
||||||
char hex[PMK_LEN * 2 + 1];
|
|
||||||
wpa_snprintf_hex(hex, sizeof(hex),
|
|
||||||
hapd->conf->ssid.wpa_psk->psk, PMK_LEN);
|
|
||||||
ret = os_snprintf(pos, end - pos, "psk=%s\n", hex);
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_WPS */
|
|
||||||
|
|
||||||
if (hapd->conf->wpa) {
|
|
||||||
ret = os_snprintf(pos, end - pos, "wpa=%d\n", hapd->conf->wpa);
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hapd->conf->wpa && hapd->conf->wpa_key_mgmt) {
|
|
||||||
ret = os_snprintf(pos, end - pos, "key_mgmt=");
|
|
||||||
if (os_snprintf_error(end - pos, ret))
|
|
||||||
return pos - buf;
|
|
||||||
pos += ret;
|
|
||||||
|
|
||||||
if (hapd->conf->wpa_key_mgmt & WPA_KEY_MGMT_PSK) {
|
if (hapd->conf->wpa_key_mgmt & WPA_KEY_MGMT_PSK) {
|
||||||
ret = os_snprintf(pos, end - pos, "WPA-PSK ");
|
ret = os_snprintf(pos, end - pos, "WPA-PSK ");
|
||||||
|
@ -1191,6 +1140,79 @@ static int hostapd_ctrl_iface_get_config(struct hostapd_data *hapd,
|
||||||
pos += ret;
|
pos += ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pos > buf && *(pos - 1) == ' ') {
|
||||||
|
*(pos - 1) = '\0';
|
||||||
|
pos--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return pos - buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int hostapd_ctrl_iface_get_config(struct hostapd_data *hapd,
|
||||||
|
char *buf, size_t buflen)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *pos, *end;
|
||||||
|
|
||||||
|
pos = buf;
|
||||||
|
end = buf + buflen;
|
||||||
|
|
||||||
|
ret = os_snprintf(pos, end - pos, "bssid=" MACSTR "\n"
|
||||||
|
"ssid=%s\n",
|
||||||
|
MAC2STR(hapd->own_addr),
|
||||||
|
wpa_ssid_txt(hapd->conf->ssid.ssid,
|
||||||
|
hapd->conf->ssid.ssid_len));
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
|
||||||
|
#ifdef CONFIG_WPS
|
||||||
|
ret = os_snprintf(pos, end - pos, "wps_state=%s\n",
|
||||||
|
hapd->conf->wps_state == 0 ? "disabled" :
|
||||||
|
(hapd->conf->wps_state == 1 ? "not configured" :
|
||||||
|
"configured"));
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
|
||||||
|
if (hapd->conf->wps_state && hapd->conf->wpa &&
|
||||||
|
hapd->conf->ssid.wpa_passphrase) {
|
||||||
|
ret = os_snprintf(pos, end - pos, "passphrase=%s\n",
|
||||||
|
hapd->conf->ssid.wpa_passphrase);
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hapd->conf->wps_state && hapd->conf->wpa &&
|
||||||
|
hapd->conf->ssid.wpa_psk &&
|
||||||
|
hapd->conf->ssid.wpa_psk->group) {
|
||||||
|
char hex[PMK_LEN * 2 + 1];
|
||||||
|
wpa_snprintf_hex(hex, sizeof(hex),
|
||||||
|
hapd->conf->ssid.wpa_psk->psk, PMK_LEN);
|
||||||
|
ret = os_snprintf(pos, end - pos, "psk=%s\n", hex);
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
|
if (hapd->conf->wpa) {
|
||||||
|
ret = os_snprintf(pos, end - pos, "wpa=%d\n", hapd->conf->wpa);
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hapd->conf->wpa && hapd->conf->wpa_key_mgmt) {
|
||||||
|
ret = os_snprintf(pos, end - pos, "key_mgmt=");
|
||||||
|
if (os_snprintf_error(end - pos, ret))
|
||||||
|
return pos - buf;
|
||||||
|
pos += ret;
|
||||||
|
|
||||||
|
pos += hostapd_ctrl_iface_get_key_mgmt(hapd, pos, end - pos);
|
||||||
|
|
||||||
ret = os_snprintf(pos, end - pos, "\n");
|
ret = os_snprintf(pos, end - pos, "\n");
|
||||||
if (os_snprintf_error(end - pos, ret))
|
if (os_snprintf_error(end - pos, ret))
|
||||||
return pos - buf;
|
return pos - buf;
|
||||||
|
|
Loading…
Reference in a new issue