DBus/P2P: Rectified type of SecondaryDeviceTypes in device property Get (revised)
Sane, Jayant
jayant.sane
Fri Jul 1 15:36:10 PDT 2011
To be consistent with what it expected in corresponding Set property as byte[][]
Signed-off-by: Jayant Sane <jayant.sane at intel.com>
---
V2 - fixed some whitespace format issues
---
wpa_supplicant/dbus/dbus_new_handlers_p2p.c | 33 ++++++++++++++++++---------
1 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
index ea84163..55ccd99 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
@@ -660,8 +660,8 @@ 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 +694,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++) {
--
1.7.1
More information about the Hostap
mailing list