dbus_new: Add EAP logon/logoff
Add "EAPLogoff" and "EAPLogon" interface DBus commands which parallel the "logoff" and "logon" wpa_ctrl commands which terminate and restart EAP authentication. Slightly enhance the "logon" case by expiring any running "startWhile" timer. Signed-hostap: Paul Stewart <pstew@chromium.org>
This commit is contained in:
parent
c2aff6b1d1
commit
754632c965
5 changed files with 63 additions and 1 deletions
|
@ -331,7 +331,15 @@ fi.w1.wpa_supplicant1.CreateInterface.
|
|||
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
|
||||
<dd>Invalid entries were found in the passed argument.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</li>
|
||||
<li>
|
||||
<h3>EAPLogoff ( ) --> nothing</h3>
|
||||
<p>IEEE 802.1X EAPOL state machine logoff.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>EAPLogon ( ) --> nothing</h3>
|
||||
<p>IEEE 802.1X EAPOL state machine logon.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
\subsection dbus_interface_properties Properties
|
||||
|
|
|
@ -1533,6 +1533,10 @@ void eapol_sm_notify_logoff(struct eapol_sm *sm, Boolean logoff)
|
|||
{
|
||||
if (sm) {
|
||||
sm->userLogoff = logoff;
|
||||
if (!logoff) {
|
||||
/* If there is a delayed txStart queued, start now. */
|
||||
sm->startWhen = 0;
|
||||
}
|
||||
eapol_sm_step(sm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2654,6 +2654,18 @@ static const struct wpa_dbus_method_desc wpas_dbus_interface_methods[] = {
|
|||
}
|
||||
},
|
||||
#endif /* CONFIG_AP */
|
||||
{ "EAPLogoff", WPAS_DBUS_NEW_IFACE_INTERFACE,
|
||||
(WPADBusMethodHandler) &wpas_dbus_handler_eap_logoff,
|
||||
{
|
||||
END_ARGS
|
||||
}
|
||||
},
|
||||
{ "EAPLogon", WPAS_DBUS_NEW_IFACE_INTERFACE,
|
||||
(WPADBusMethodHandler) &wpas_dbus_handler_eap_logon,
|
||||
{
|
||||
END_ARGS
|
||||
}
|
||||
},
|
||||
{ NULL, NULL, NULL, { END_ARGS } }
|
||||
};
|
||||
|
||||
|
|
|
@ -1938,6 +1938,38 @@ DBusMessage * wpas_dbus_handler_autoscan(DBusMessage *message,
|
|||
#endif /* CONFIG_AUTOSCAN */
|
||||
|
||||
|
||||
/*
|
||||
* wpas_dbus_handler_eap_logoff - IEEE 802.1X EAPOL state machine logoff
|
||||
* @message: Pointer to incoming dbus message
|
||||
* @wpa_s: wpa_supplicant structure for a network interface
|
||||
* Returns: NULL
|
||||
*
|
||||
* Handler function for "EAPLogoff" method call of network interface.
|
||||
*/
|
||||
DBusMessage * wpas_dbus_handler_eap_logoff(DBusMessage *message,
|
||||
struct wpa_supplicant *wpa_s)
|
||||
{
|
||||
eapol_sm_notify_logoff(wpa_s->eapol, TRUE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* wpas_dbus_handler_eap_logon - IEEE 802.1X EAPOL state machine logon
|
||||
* @message: Pointer to incoming dbus message
|
||||
* @wpa_s: wpa_supplicant structure for a network interface
|
||||
* Returns: NULL
|
||||
*
|
||||
* Handler function for "EAPLogin" method call of network interface.
|
||||
*/
|
||||
DBusMessage * wpas_dbus_handler_eap_logon(DBusMessage *message,
|
||||
struct wpa_supplicant *wpa_s)
|
||||
{
|
||||
eapol_sm_notify_logoff(wpa_s->eapol, FALSE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* wpas_dbus_getter_capabilities - Return interface capabilities
|
||||
* @iter: Pointer to incoming dbus message iter
|
||||
|
|
|
@ -128,6 +128,12 @@ DBusMessage * wpas_dbus_handler_flush_bss(DBusMessage *message,
|
|||
DBusMessage * wpas_dbus_handler_autoscan(DBusMessage *message,
|
||||
struct wpa_supplicant *wpa_s);
|
||||
|
||||
DBusMessage * wpas_dbus_handler_eap_logoff(DBusMessage *message,
|
||||
struct wpa_supplicant *wpa_s);
|
||||
|
||||
DBusMessage * wpas_dbus_handler_eap_logon(DBusMessage *message,
|
||||
struct wpa_supplicant *wpa_s);
|
||||
|
||||
dbus_bool_t wpas_dbus_getter_capabilities(DBusMessageIter *iter,
|
||||
DBusError *error, void *user_data);
|
||||
|
||||
|
|
Loading…
Reference in a new issue