|
@@ -1735,10 +1735,12 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
|
|
|
enum wpas_dbus_prop property)
|
|
|
{
|
|
|
char *prop;
|
|
|
+ dbus_bool_t flush;
|
|
|
|
|
|
if (wpa_s->dbus_new_path == NULL)
|
|
|
return; /* Skip signal since D-Bus setup is not yet ready */
|
|
|
|
|
|
+ flush = FALSE;
|
|
|
switch (property) {
|
|
|
case WPAS_DBUS_PROP_AP_SCAN:
|
|
|
prop = "ApScan";
|
|
@@ -1761,6 +1763,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
|
|
|
case WPAS_DBUS_PROP_CURRENT_AUTH_MODE:
|
|
|
prop = "CurrentAuthMode";
|
|
|
break;
|
|
|
+ case WPAS_DBUS_PROP_DISCONNECT_REASON:
|
|
|
+ prop = "DisconnectReason";
|
|
|
+ flush = TRUE;
|
|
|
+ break;
|
|
|
default:
|
|
|
wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
|
|
|
__func__, property);
|
|
@@ -1770,6 +1776,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
|
|
|
wpa_dbus_mark_property_changed(wpa_s->global->dbus,
|
|
|
wpa_s->dbus_new_path,
|
|
|
WPAS_DBUS_NEW_IFACE_INTERFACE, prop);
|
|
|
+ if (flush) {
|
|
|
+ wpa_dbus_flush_object_changed_properties(
|
|
|
+ wpa_s->global->dbus->con, wpa_s->dbus_new_path);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2746,6 +2756,10 @@ static const struct wpa_dbus_property_desc wpas_dbus_interface_properties[] = {
|
|
|
NULL
|
|
|
},
|
|
|
#endif /* CONFIG_P2P */
|
|
|
+ { "DisconnectReason", WPAS_DBUS_NEW_IFACE_INTERFACE, "i",
|
|
|
+ wpas_dbus_getter_disconnect_reason,
|
|
|
+ NULL
|
|
|
+ },
|
|
|
{ NULL, NULL, NULL, NULL, NULL }
|
|
|
};
|
|
|
|