]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
DBus/P2P: Rectified type of SecondaryDeviceTypes in device property Get
authorJayant Sane <jayant.sane@intel.com>
Mon, 4 Jul 2011 17:27:53 +0000 (20:27 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 4 Jul 2011 17:27:53 +0000 (20:27 +0300)
To be consistent with what it expected in corresponding Set property as
byte[][].

Signed-off-by: Jayant Sane <jayant.sane@intel.com>
wpa_supplicant/dbus/dbus_new_handlers_p2p.c

index 3fec3083ba827d23eb313c862d2c23038f65b6b3..55482b4768737b5a629e7c236ce280ede59e8b66 100644 (file)
@@ -660,8 +660,9 @@ DBusMessage *wpas_dbus_getter_p2p_device_properties(DBusMessage * message,
 {
        DBusMessage *reply = NULL;
        DBusMessageIter iter, variant_iter, dict_iter;
+       DBusMessageIter iter_secdev_dict_entry, iter_secdev_dict_val,
+               iter_secdev_dict_array;
        const char *dev_name;
-       int num_sec_dev_types = 0;
        int num_vendor_extensions = 0;
        int i;
        const struct wpabuf *vendor_ext[P2P_MAX_WPS_VENDOR_EXT];
@@ -694,17 +695,28 @@ DBusMessage *wpas_dbus_getter_p2p_device_properties(DBusMessage * message,
                goto err_no_mem;
 
        /* Secondary device types */
-       for (i = 0; i < MAX_SEC_DEVICE_TYPES; i++) {
-               if (wpa_s->conf->sec_device_type[i] == NULL)
-                       break;
-               num_sec_dev_types++;
-       }
+       if (wpa_s->conf->num_sec_device_types) {
+               if (!wpa_dbus_dict_begin_array(&dict_iter,
+                                              "SecondaryDeviceTypes",
+                                              DBUS_TYPE_ARRAY_AS_STRING
+                                              DBUS_TYPE_BYTE_AS_STRING,
+                                              &iter_secdev_dict_entry,
+                                              &iter_secdev_dict_val,
+                                              &iter_secdev_dict_array))
+                       goto err_no_mem;
 
-       if (!wpa_dbus_dict_append_string_array(
-                       &dict_iter, "SecondaryDeviceTypes",
-                       (const char **)wpa_s->conf->sec_device_type,
-                       num_sec_dev_types))
-               goto err_no_mem;
+               for (i = 0; i < wpa_s->conf->num_sec_device_types; i++)
+                       wpa_dbus_dict_bin_array_add_element(
+                               &iter_secdev_dict_array,
+                               wpa_s->conf->sec_device_type[i],
+                               WPS_DEV_TYPE_LEN);
+
+               if (!wpa_dbus_dict_end_array(&dict_iter,
+                                            &iter_secdev_dict_entry,
+                                            &iter_secdev_dict_val,
+                                            &iter_secdev_dict_array))
+                       goto err_no_mem;
+       }
 
        /* Vendor Extensions */
        for (i = 0; i < P2P_MAX_WPS_VENDOR_EXT; i++) {