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 */
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
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;
|
||||
WPA_ASSERT(hapd->conf->wpa_key_mgmt);
|
||||
|
||||
if (hapd->conf->wpa_key_mgmt & WPA_KEY_MGMT_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;
|
||||
}
|
||||
|
||||
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");
|
||||
if (os_snprintf_error(end - pos, ret))
|
||||
return pos - buf;
|
||||
|
|
Loading…
Reference in a new issue