diff options
author | Jouni Malinen <j@w1.fi> | 2015-07-12 08:31:28 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2015-07-12 08:34:18 (GMT) |
commit | 3722c0f4aae47663e1f3bd81cd78d4653c4db5f8 (patch) | |
tree | 58d1cd8bf6989ac0b911f1ac92ca48b77382521b /hostapd | |
parent | a32a6d2ca24c4009e693a2b07a2d75372ce4c8b4 (diff) | |
download | hostap-3722c0f4aae47663e1f3bd81cd78d4653c4db5f8.zip hostap-3722c0f4aae47663e1f3bd81cd78d4653c4db5f8.tar.gz hostap-3722c0f4aae47663e1f3bd81cd78d4653c4db5f8.tar.bz2 |
Add EAPOL_SET hostapd command to configure EAPOL parameters
This new control interface command "EAPOL_REAUTH <MAC address>
<parameter> <value>" can be used to implement the IEEE 802.1X PAE
Set Authenticator Configuration operation.
Signed-off-by: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'hostapd')
-rw-r--r-- | hostapd/ctrl_iface.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c index 0533c3e..16add37 100644 --- a/hostapd/ctrl_iface.c +++ b/hostapd/ctrl_iface.c @@ -1905,6 +1905,29 @@ static int hostapd_ctrl_iface_eapol_reauth(struct hostapd_data *hapd, } +static int hostapd_ctrl_iface_eapol_set(struct hostapd_data *hapd, char *cmd) +{ + u8 addr[ETH_ALEN]; + struct sta_info *sta; + char *pos = cmd, *param; + + if (hwaddr_aton(pos, addr) || pos[17] != ' ') + return -1; + pos += 18; + param = pos; + pos = os_strchr(pos, ' '); + if (!pos) + return -1; + *pos++ = '\0'; + + sta = ap_get_sta(hapd, addr); + if (!sta || !sta->eapol_sm) + return -1; + + return eapol_auth_set_conf(sta->eapol_sm, param, pos); +} + + static void hostapd_ctrl_iface_receive(int sock, void *eloop_ctx, void *sock_ctx) { @@ -2157,6 +2180,9 @@ static void hostapd_ctrl_iface_receive(int sock, void *eloop_ctx, } else if (os_strncmp(buf, "EAPOL_REAUTH ", 13) == 0) { if (hostapd_ctrl_iface_eapol_reauth(hapd, buf + 13)) reply_len = -1; + } else if (os_strncmp(buf, "EAPOL_SET ", 10) == 0) { + if (hostapd_ctrl_iface_eapol_set(hapd, buf + 10)) + reply_len = -1; } else { os_memcpy(reply, "UNKNOWN COMMAND\n", 16); reply_len = 16; |