]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Allow wildcard service discovery from DBus API
authorAdrien Bustany <adrien.bustany@nokia.com>
Sat, 14 Apr 2012 18:06:16 +0000 (21:06 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 14 Apr 2012 18:06:16 +0000 (21:06 +0300)
Using the socket command interface, it is possible to pass a NULL dst to
wpas_p2p_sd_request, however you could not do so using the D-Bus API,
since it required a valid Peer object path. This patch changes the
behavior, so that if the "peer_object" is missing from the parameters,
a NULL dst is passed to wpas_p2p_sd_request.

Signed-hostap: Adrien Bustany <adrien.bustany@nokia.com>
intended-for: hostap-1

wpa_supplicant/dbus/dbus_new_handlers_p2p.c

index 8d50bcae05578a6ab76ae0d6e5a5b08a652ea161..edfc734de70dfd4601cbe1dc7f48d90679233a2d 100644 (file)
@@ -2265,7 +2265,7 @@ DBusMessage * wpas_dbus_handler_p2p_service_sd_req(
        struct wpabuf *tlv = NULL;
        u8 version = 0;
        u64 ref = 0;
-       u8 addr[ETH_ALEN];
+       u8 addr_buf[ETH_ALEN], *addr;
 
        dbus_message_iter_init(message, &iter);
 
@@ -2302,10 +2302,15 @@ DBusMessage * wpas_dbus_handler_p2p_service_sd_req(
                wpa_dbus_dict_entry_clear(&entry);
        }
 
-       if (!peer_object_path ||
-           (parse_peer_object_path(peer_object_path, addr) < 0) ||
-           !p2p_peer_known(wpa_s->global->p2p, addr))
-               goto error;
+       if (!peer_object_path) {
+               addr = NULL;
+       } else {
+               if (parse_peer_object_path(peer_object_path, addr_buf) < 0 ||
+                   !p2p_peer_known(wpa_s->global->p2p, addr_buf))
+                       goto error;
+
+               addr = addr_buf;
+       }
 
        if (upnp == 1) {
                if (version <= 0 || service == NULL)