Merge branch 'moonshot' of ssh://moonshot.suchdamage.org:822/srv/git/libeap into...
[libeap.git] / wpa_supplicant / dbus / dbus_new.c
index 05e6936..bdfbbac 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * WPA Supplicant / dbus-based control interface
  * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc.
- * Copyright (c) 2009, Witold Sowa <witold.sowa@gmail.com>
+ * Copyright (c) 2009-2010, Witold Sowa <witold.sowa@gmail.com>
  * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -181,7 +181,7 @@ static void wpas_dbus_signal_bss(struct wpa_supplicant *wpa_s,
                        goto err;
 
                wpa_dbus_get_object_properties(iface, bss_obj_path,
-                                              WPAS_DBUS_NEW_IFACE_BSSID,
+                                              WPAS_DBUS_NEW_IFACE_BSS,
                                               &iter_dict);
 
                if (!wpa_dbus_dict_close_write(&iter, &iter_dict))
@@ -665,6 +665,9 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
        WPADBusPropertyAccessor getter;
        char *prop;
 
+       if (wpa_s->dbus_new_path == NULL)
+               return; /* Skip signal since D-Bus setup is not yet ready */
+
        switch (property) {
        case WPAS_DBUS_PROP_AP_SCAN:
                getter = (WPADBusPropertyAccessor) wpas_dbus_getter_ap_scan;
@@ -732,14 +735,14 @@ void wpas_dbus_bss_signal_prop_changed(struct wpa_supplicant *wpa_s,
        case WPAS_DBUS_BSS_PROP_RATES:
                prop = "Rates";
                break;
-       case WPAS_DBUS_BSS_PROP_WPAIE:
-               prop = "WPAIE";
+       case WPAS_DBUS_BSS_PROP_WPA:
+               prop = "WPA";
                break;
-       case WPAS_DBUS_BSS_PROP_RSNIE:
-               prop = "RSNIE";
+       case WPAS_DBUS_BSS_PROP_RSN:
+               prop = "RSN";
                break;
-       case WPAS_DBUS_BSS_PROP_WPSIE:
-               prop = "WPSIE";
+       case WPAS_DBUS_BSS_PROP_IES:
+               prop = "IEs";
                break;
        default:
                wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
@@ -752,7 +755,7 @@ void wpas_dbus_bss_signal_prop_changed(struct wpa_supplicant *wpa_s,
                    wpa_s->dbus_new_path, id);
 
        wpa_dbus_mark_property_changed(wpa_s->global->dbus, path,
-                                      WPAS_DBUS_NEW_IFACE_BSSID, prop);
+                                      WPAS_DBUS_NEW_IFACE_BSS, prop);
 }
 
 
@@ -1073,7 +1076,8 @@ int wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, int nid)
        int ret;
 
        /* Do nothing if the control interface is not turned on */
-       if (wpa_s == NULL || wpa_s->global == NULL)
+       if (wpa_s == NULL || wpa_s->global == NULL ||
+           wpa_s->dbus_new_path == NULL)
                return 0;
        ctrl_iface = wpa_s->global->dbus;
        if (ctrl_iface == NULL)
@@ -1095,53 +1099,53 @@ int wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, int nid)
 
 
 static const struct wpa_dbus_property_desc wpas_dbus_bss_properties[] = {
-       { "SSID", WPAS_DBUS_NEW_IFACE_BSSID, "ay",
+       { "SSID", WPAS_DBUS_NEW_IFACE_BSS, "ay",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_ssid,
          NULL,
          R
        },
-       { "BSSID", WPAS_DBUS_NEW_IFACE_BSSID, "ay",
+       { "BSSID", WPAS_DBUS_NEW_IFACE_BSS, "ay",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_bssid,
          NULL,
          R
        },
-       { "Privacy", WPAS_DBUS_NEW_IFACE_BSSID, "b",
+       { "Privacy", WPAS_DBUS_NEW_IFACE_BSS, "b",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_privacy,
          NULL,
          R
        },
-       { "Mode", WPAS_DBUS_NEW_IFACE_BSSID, "s",
+       { "Mode", WPAS_DBUS_NEW_IFACE_BSS, "s",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_mode,
          NULL,
          R
        },
-       { "Signal", WPAS_DBUS_NEW_IFACE_BSSID, "n",
+       { "Signal", WPAS_DBUS_NEW_IFACE_BSS, "n",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_signal,
          NULL,
          R
        },
-       { "Frequency", WPAS_DBUS_NEW_IFACE_BSSID, "q",
+       { "Frequency", WPAS_DBUS_NEW_IFACE_BSS, "q",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_frequency,
          NULL,
          R
        },
-       { "Rates", WPAS_DBUS_NEW_IFACE_BSSID, "au",
+       { "Rates", WPAS_DBUS_NEW_IFACE_BSS, "au",
          (WPADBusPropertyAccessor) wpas_dbus_getter_bss_rates,
          NULL,
          R
        },
-       { "WPAIE", WPAS_DBUS_NEW_IFACE_BSSID, "ay",
-         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_wpaie,
+       { "WPA", WPAS_DBUS_NEW_IFACE_BSS, "a{sv}",
+         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_wpa,
          NULL,
          R
        },
-       { "RSNIE", WPAS_DBUS_NEW_IFACE_BSSID, "ay",
-         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_rsnie,
+       { "RSN", WPAS_DBUS_NEW_IFACE_BSS, "a{sv}",
+         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_rsn,
          NULL,
          R
        },
-       { "WPSIE", WPAS_DBUS_NEW_IFACE_BSSID, "ay",
-         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_wpsie,
+       { "IEs", WPAS_DBUS_NEW_IFACE_BSS, "ay",
+         (WPADBusPropertyAccessor) wpas_dbus_getter_bss_ies,
          NULL,
          R
        },
@@ -1150,7 +1154,7 @@ static const struct wpa_dbus_property_desc wpas_dbus_bss_properties[] = {
 
 
 static const struct wpa_dbus_signal_desc wpas_dbus_bss_signals[] = {
-       { "PropertiesChanged", WPAS_DBUS_NEW_IFACE_BSSID,
+       { "PropertiesChanged", WPAS_DBUS_NEW_IFACE_BSS,
          {
                  { "properties", "a{sv}", ARG_OUT },
                  END_ARGS