]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
dbus: Implement P2P Peers info IEs buffer getter
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Fri, 21 Mar 2014 11:48:08 +0000 (13:48 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 21 Mar 2014 21:49:47 +0000 (23:49 +0200)
Since it declares providing such property, let's expose it relevantly.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
wpa_supplicant/dbus/dbus_new_handlers_p2p.c

index 3009760de623ae9ffbc87f02efa10354b34e9bd5..7857bfd73179dd57da9157d5b6b7f9c7e57600bc 100644 (file)
@@ -1478,12 +1478,25 @@ dbus_bool_t wpas_dbus_getter_p2p_peer_vendor_extension(DBusMessageIter *iter,
 dbus_bool_t wpas_dbus_getter_p2p_peer_ies(DBusMessageIter *iter,
                                          DBusError *error, void *user_data)
 {
-       dbus_bool_t success;
-       /* struct peer_handler_args *peer_args = user_data; */
+       struct peer_handler_args *peer_args = user_data;
+       const struct p2p_peer_info *info;
 
-       success = wpas_dbus_simple_array_property_getter(iter, DBUS_TYPE_BYTE,
-                                                        NULL, 0, error);
-       return success;
+       info = p2p_get_peer_found(peer_args->wpa_s->global->p2p,
+                                 peer_args->p2p_device_addr, 0);
+       if (info == NULL) {
+               dbus_set_error(error, DBUS_ERROR_FAILED,
+                              "failed to find peer");
+               return FALSE;
+       }
+
+       if (info->wfd_subelems == NULL)
+               return wpas_dbus_simple_array_property_getter(iter,
+                                                             DBUS_TYPE_BYTE,
+                                                             NULL, 0, error);
+
+       return wpas_dbus_simple_array_property_getter(
+               iter, DBUS_TYPE_BYTE, (char *) info->wfd_subelems->buf,
+               info->wfd_subelems->used, error);
 }