]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add DBus state change notification for AuthMode property
authorPaul Stewart <pstew@google.com>
Tue, 15 Mar 2011 11:54:59 +0000 (13:54 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 15 Mar 2011 11:54:59 +0000 (13:54 +0200)
Signed-off-by: Paul Stewart <pstew@google.com>
wpa_supplicant/dbus/dbus_new.c
wpa_supplicant/dbus/dbus_new.h
wpa_supplicant/notify.c
wpa_supplicant/notify.h
wpa_supplicant/wpa_supplicant.c

index 7562c94e7073ff3d35989048e3e9a977f2a919b2..f85fedfb40839273dce6cc0c7b9b91d19d40c052 100644 (file)
@@ -695,6 +695,11 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
                getter = (WPADBusPropertyAccessor) wpas_dbus_getter_bsss;
                prop = "BSSs";
                break;
+       case WPAS_DBUS_PROP_CURRENT_AUTH_MODE:
+               getter = (WPADBusPropertyAccessor)
+                       wpas_dbus_getter_current_auth_mode;
+               prop = "CurrentAuthMode";
+               break;
        default:
                wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
                           __func__, property);
index 9cdefcb6b95278457f94e320724794e36de57efd..377e3811751184a8e7cf1de351d1361c1a5df7ee 100644 (file)
@@ -30,6 +30,7 @@ enum wpas_dbus_prop {
        WPAS_DBUS_PROP_STATE,
        WPAS_DBUS_PROP_CURRENT_BSS,
        WPAS_DBUS_PROP_CURRENT_NETWORK,
+       WPAS_DBUS_PROP_CURRENT_AUTH_MODE,
        WPAS_DBUS_PROP_BSSS,
 };
 
index 5e3aaa09e431eb76fff9c05fc5787862a23c98c0..9ee7dc20b0101aa38c05ebddeeb245989cc4a30b 100644 (file)
@@ -120,6 +120,12 @@ void wpas_notify_bssid_changed(struct wpa_supplicant *wpa_s)
 }
 
 
+void wpas_notify_auth_changed(struct wpa_supplicant *wpa_s)
+{
+       wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_CURRENT_AUTH_MODE);
+}
+
+
 void wpas_notify_network_enabled_changed(struct wpa_supplicant *wpa_s,
                                         struct wpa_ssid *ssid)
 {
index 4e55bd145651ab17dd589ba8c40df4677a6f764b..156774a62ae3d4f9200d35b9935d97e540f90872 100644 (file)
@@ -29,6 +29,7 @@ void wpas_notify_state_changed(struct wpa_supplicant *wpa_s,
 void wpas_notify_network_changed(struct wpa_supplicant *wpa_s);
 void wpas_notify_ap_scan_changed(struct wpa_supplicant *wpa_s);
 void wpas_notify_bssid_changed(struct wpa_supplicant *wpa_s);
+void wpas_notify_auth_changed(struct wpa_supplicant *wpa_s);
 void wpas_notify_network_enabled_changed(struct wpa_supplicant *wpa_s,
                                         struct wpa_ssid *ssid);
 void wpas_notify_network_selected(struct wpa_supplicant *wpa_s,
index d3342276b899d1b2291a3fc6481a2b4a4fe738bd..4f58f76a3bd8d750f02cf1d201f2fd08dd54a4bb 100644 (file)
@@ -572,8 +572,13 @@ void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
        }
        wpa_s->wpa_state = state;
 
-       if (wpa_s->wpa_state != old_state)
+       if (wpa_s->wpa_state != old_state) {
                wpas_notify_state_changed(wpa_s, wpa_s->wpa_state, old_state);
+
+               if (wpa_s->wpa_state == WPA_COMPLETED ||
+                   old_state == WPA_COMPLETED)
+                       wpas_notify_auth_changed(wpa_s);
+       }
 }