[PATCH 1/3] P2P: Rejecting provision discovery request for group client
Avichal Agarwal
avichal.a
Mon Aug 3 04:07:32 PDT 2015
From: Avichal Agarwal <avichal.a at samsung.com>
Date: Mon, 3 Aug 2015 15:22:33 +0530
Subject: [PATCH 1/3] P2P: Rejecting provision discovery request for group client
According to p2p specs when device is a group clent it should not recieve provision discovery request.
Signed-off-by: Avichal Agarwal <avichal.a at samsung.com>
---
src/p2p/p2p_pd.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/p2p/p2p_pd.c b/src/p2p/p2p_pd.c
index 065321c..92b1493 100644
--- a/src/p2p/p2p_pd.c
+++ b/src/p2p/p2p_pd.c
@@ -431,8 +431,8 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
const u8 *data, size_t len, int rx_freq)
{
struct p2p_message msg;
- struct p2p_device *dev;
- int freq;
+ struct p2p_device *dev,*n;
+ int freq,failflag=0;
enum p2p_status_code reject = P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
struct wpabuf *resp;
u32 adv_id = 0;
@@ -455,8 +455,23 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
p2p_dbg(p2p, "Received Provision Discovery Request from " MACSTR
" with config methods 0x%x (freq=%d)",
MAC2STR(sa), msg.wps_config_methods, rx_freq);
+
+ dl_list_for_each_safe(dev, n, &p2p->devices, struct p2p_device, list) {
+ if (p2p->cfg->go_connected &&
+ p2p->cfg->go_connected(p2p->cfg->cb_ctx,
+ dev->info.p2p_device_addr)) {
+ p2p_dbg(p2p, " Already connected Provision Discovery Request Ignored\n");
+ reject = P2P_SC_FAIL_REJECTED_BY_USER;
+ failflag=1;
+ break;
+ }
+ }
dev = p2p_get_device(p2p, sa);
+
+ if(dev && failflag)
+ goto out;
+
if (dev == NULL || (dev->flags & P2P_DEV_PROBE_REQ_ONLY)) {
p2p_dbg(p2p, "Provision Discovery Request from unknown peer "
MACSTR, MAC2STR(sa));
@@ -471,6 +486,9 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
}
+ if(failflag)
+ goto out;
+
if (msg.adv_id)
allowed_config_methods |= WPS_CONFIG_P2PS;
else
--
1.7.9.5
More information about the Hostap
mailing list