P2P: Allow wildcard service discovery from DBus API

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
This commit is contained in:
Adrien Bustany 2012-04-14 21:06:16 +03:00 committed by Jouni Malinen
parent cca0060f1e
commit e56fc9e81b

View file

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