aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/p2p/p2p.c6
-rw-r--r--src/p2p/p2p.h8
-rw-r--r--wpa_supplicant/dbus/dbus_new.c6
-rw-r--r--wpa_supplicant/dbus/dbus_new_handlers_p2p.c9
4 files changed, 21 insertions, 8 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
index 9fcc6ca..a9d5998 100644
--- a/src/p2p/p2p.c
+++ b/src/p2p/p2p.c
@@ -3216,6 +3216,12 @@ int p2p_get_peer_info(struct p2p_data *p2p, const u8 *addr, int next,
}
+int p2p_peer_known(struct p2p_data *p2p, const u8 *addr)
+{
+ return p2p_get_device(p2p, addr) != NULL;
+}
+
+
void p2p_set_client_discoverability(struct p2p_data *p2p, int enabled)
{
if (enabled) {
diff --git a/src/p2p/p2p.h b/src/p2p/p2p.h
index 3db0ac5..99934bd 100644
--- a/src/p2p/p2p.h
+++ b/src/p2p/p2p.h
@@ -1428,6 +1428,14 @@ int p2p_get_peer_info(struct p2p_data *p2p, const u8 *addr, int next,
char *buf, size_t buflen);
/**
+ * p2p_peer_known - Check whether P2P peer is known
+ * @p2p: P2P module context from p2p_init()
+ * @addr: P2P Device Address of the peer
+ * Returns: 1 if the specified device is in the P2P peer table or 0 if not
+ */
+int p2p_peer_known(struct p2p_data *p2p, const u8 *addr);
+
+/**
* p2p_set_client_discoverability - Set client discoverability capability
* @p2p: P2P module context from p2p_init()
* @enabled: Whether client discoverability will be enabled
diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
index f88d354..2bf9be8 100644
--- a/wpa_supplicant/dbus/dbus_new.c
+++ b/wpa_supplicant/dbus/dbus_new.c
@@ -867,7 +867,7 @@ void wpas_dbus_signal_p2p_provision_discovery(struct wpa_supplicant *wpa_s,
return;
/* Check if this is a known peer */
- if (p2p_get_peer_info(wpa_s->global->p2p, dev_addr, 0, NULL, 0) < 0)
+ if (!p2p_peer_known(wpa_s->global->p2p, dev_addr))
goto error;
os_snprintf(peer_obj_path, WPAS_DBUS_OBJECT_PATH_MAX,
@@ -1357,7 +1357,7 @@ void wpas_dbus_signal_p2p_sd_request(struct wpa_supplicant *wpa_s,
return;
/* Check if this is a known peer */
- if (p2p_get_peer_info(wpa_s->global->p2p, sa, 0, NULL, 0) < 0)
+ if (!p2p_peer_known(wpa_s->global->p2p, sa))
goto error;
os_snprintf(peer_obj_path, WPAS_DBUS_OBJECT_PATH_MAX,
@@ -1426,7 +1426,7 @@ void wpas_dbus_signal_p2p_sd_response(struct wpa_supplicant *wpa_s,
return;
/* Check if this is a known peer */
- if (p2p_get_peer_info(wpa_s->global->p2p, sa, 0, NULL, 0) < 0)
+ if (!p2p_peer_known(wpa_s->global->p2p, sa))
goto error;
os_snprintf(peer_obj_path, WPAS_DBUS_OBJECT_PATH_MAX,
diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
index de0caad..671d0e5 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
@@ -497,7 +497,7 @@ DBusMessage * wpas_dbus_handler_p2p_connect(DBusMessage *message,
if (!peer_object_path || (wps_method == WPS_NOT_READY) ||
(parse_peer_object_path(peer_object_path, addr) < 0) ||
- (p2p_get_peer_info(wpa_s->global->p2p, addr, 0, NULL, 0) < 0))
+ !p2p_peer_known(wpa_s->global->p2p, addr))
goto inv_args;
/*
@@ -603,8 +603,7 @@ DBusMessage * wpas_dbus_handler_p2p_invite(DBusMessage *message,
if (!peer_object_path ||
(parse_peer_object_path(peer_object_path, peer_addr) < 0) ||
- (p2p_get_peer_info(wpa_s->global->p2p,
- peer_addr, 0, NULL, 0) < 0)) {
+ !p2p_peer_known(wpa_s->global->p2p, peer_addr)) {
goto err;
}
@@ -2013,7 +2012,7 @@ DBusMessage * wpas_dbus_handler_p2p_service_sd_req(
if (!peer_object_path ||
(parse_peer_object_path(peer_object_path, addr) < 0) ||
- (p2p_get_peer_info(wpa_s->global->p2p, addr, 0, NULL, 0) < 0))
+ !p2p_peer_known(wpa_s->global->p2p, addr))
goto error;
if (upnp == 1) {
@@ -2094,7 +2093,7 @@ DBusMessage * wpas_dbus_handler_p2p_service_sd_res(
}
if (!peer_object_path ||
(parse_peer_object_path(peer_object_path, addr) < 0) ||
- (p2p_get_peer_info(wpa_s->global->p2p, addr, 0, NULL, 0) < 0))
+ !p2p_peer_known(wpa_s->global->p2p, addr))
goto error;
if (tlv == NULL)