D-Bus: Add signal to notify WPS timeout event
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
This commit is contained in:
parent
55b4cc6dd7
commit
893e2cf961
3 changed files with 17 additions and 1 deletions
|
@ -919,7 +919,7 @@ Interface for performing WPS (Wi-Fi Simple Config) operations.
|
||||||
"pbc-overlap".</dd>
|
"pbc-overlap".</dd>
|
||||||
<dt>a{sv} : args</dt>
|
<dt>a{sv} : args</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Event arguments. Empty for success and pbc-voerlap events, one entry ( "msg" : i ) for fail event and following entries for m2d event:
|
Event arguments. Empty for success and pbc-overlap events, error information ( "msg" : i, "config_error" : i, "error_indication" : i ) for fail event and following entries for m2d event:
|
||||||
<table>
|
<table>
|
||||||
<tr><th>config_methods</th><th>Value type</th>
|
<tr><th>config_methods</th><th>Value type</th>
|
||||||
<tr><td>manufacturer</td><td>q</td>
|
<tr><td>manufacturer</td><td>q</td>
|
||||||
|
|
|
@ -633,6 +633,10 @@ void wpas_dbus_signal_wps_event_fail(struct wpa_supplicant *wpa_s,
|
||||||
if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &key) ||
|
if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &key) ||
|
||||||
!wpa_dbus_dict_open_write(&iter, &dict_iter) ||
|
!wpa_dbus_dict_open_write(&iter, &dict_iter) ||
|
||||||
!wpa_dbus_dict_append_int32(&dict_iter, "msg", fail->msg) ||
|
!wpa_dbus_dict_append_int32(&dict_iter, "msg", fail->msg) ||
|
||||||
|
!wpa_dbus_dict_append_int32(&dict_iter, "config_error",
|
||||||
|
fail->config_error) ||
|
||||||
|
!wpa_dbus_dict_append_int32(&dict_iter, "error_indication",
|
||||||
|
fail->error_indication) ||
|
||||||
!wpa_dbus_dict_close_write(&iter, &dict_iter))
|
!wpa_dbus_dict_close_write(&iter, &dict_iter))
|
||||||
wpa_printf(MSG_ERROR, "dbus: Failed to construct signal");
|
wpa_printf(MSG_ERROR, "dbus: Failed to construct signal");
|
||||||
else
|
else
|
||||||
|
|
|
@ -955,8 +955,20 @@ static void wpas_clear_wps(struct wpa_supplicant *wpa_s)
|
||||||
static void wpas_wps_timeout(void *eloop_ctx, void *timeout_ctx)
|
static void wpas_wps_timeout(void *eloop_ctx, void *timeout_ctx)
|
||||||
{
|
{
|
||||||
struct wpa_supplicant *wpa_s = eloop_ctx;
|
struct wpa_supplicant *wpa_s = eloop_ctx;
|
||||||
|
union wps_event_data data;
|
||||||
|
|
||||||
wpa_msg(wpa_s, MSG_INFO, WPS_EVENT_TIMEOUT "Requested operation timed "
|
wpa_msg(wpa_s, MSG_INFO, WPS_EVENT_TIMEOUT "Requested operation timed "
|
||||||
"out");
|
"out");
|
||||||
|
os_memset(&data, 0, sizeof(data));
|
||||||
|
data.fail.config_error = WPS_CFG_MSG_TIMEOUT;
|
||||||
|
data.fail.error_indication = WPS_EI_NO_ERROR;
|
||||||
|
/*
|
||||||
|
* Call wpas_notify_wps_event_fail() directly instead of through
|
||||||
|
* wpa_supplicant_wps_event() which would end up registering unnecessary
|
||||||
|
* timeouts (those are only for the case where the failure happens
|
||||||
|
* during an EAP-WSC exchange).
|
||||||
|
*/
|
||||||
|
wpas_notify_wps_event_fail(wpa_s, &data.fail);
|
||||||
wpas_clear_wps(wpa_s);
|
wpas_clear_wps(wpa_s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue