aboutsummaryrefslogtreecommitdiffstats
path: root/src/p2p
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2014-06-13 11:05:14 -0700
committerDmitry Shmidt <dimitrysh@google.com>2014-06-13 11:05:14 -0700
commit623d63a3a443027e50efdaaec027befcc3882527 (patch)
tree1055a29422bfeb5a4fcb94a5127ae2b58d79807d /src/p2p
parent09f57babfc1e4473db20ced4f58a4c9f082c8ed8 (diff)
downloadandroid_external_wpa_supplicant_8-623d63a3a443027e50efdaaec027befcc3882527.tar.gz
android_external_wpa_supplicant_8-623d63a3a443027e50efdaaec027befcc3882527.tar.bz2
android_external_wpa_supplicant_8-623d63a3a443027e50efdaaec027befcc3882527.zip
Cumulative patch from commit 6590b6400f73762fc6a53ad6ca05a73246cc5e54
6590b64 EAP-TNC: Limit maximum message buffer to 75000 bytes (CID 62873) 49d13df P2P: Fix wfd_dev_info parsing for P2P-DEVICE-FOUND (CID 68127) 1851e17 dbus: Clean up P2P group vendor ext getter 137ff33 HS 2.0R2: Fix OSEN IE parsing for in cipher setup (CID 68132) 2703fb4 WNM: Use cleaner way of generating pointer to a field (CID 68100) da995b2 WNM: Use cleaner way of generating pointer to a field (CID 68099) 062833c GAS server: Fix request frame length validation (CID 68098) 5ce3ae4 HT: Use cleaner way of generating pointer to a field (CID 68097) fb5d417 P2P: Use cleaner way of generating pointer to a field (CID 68096) 35c0318 P2P: Use cleaner way of generating pointer to a field (CID 68095) e987c70 dbus: Add explicit break statements to switch-default 6446420 dbus: Initialize temporary entry properly (CID 62877) 70d9537 Use clearer way of getting pointer to a frame (CID 62835) c02f35f WPS: Clean up indentation level (CID 68109) 0e87e79 Fix HS20_GET_NAI_HOME_REALM_LIST hex length check (CID 68108) beb9e11 dbus: Avoid theoretical memory leaks with duplicated dict entries ceb4cd8 dbus: Fix a potential double-free in on error path (CID 62880) 68e2b88 TNC: Fix minor memory leak (CID 62848) 5519241 GAS: Limit TX wait time based on driver maximum value a0ab408 P2P: Fix SD and DevDisc to limit maximum wait time per driver support Change-Id: If9bdd7b9961c775e39ce1a8fb58220052434b395 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/p2p')
-rw-r--r--src/p2p/p2p_dev_disc.c6
-rw-r--r--src/p2p/p2p_sd.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/p2p/p2p_dev_disc.c b/src/p2p/p2p_dev_disc.c
index 76d01cfc..86bae1a2 100644
--- a/src/p2p/p2p_dev_disc.c
+++ b/src/p2p/p2p_dev_disc.c
@@ -68,6 +68,7 @@ int p2p_send_dev_disc_req(struct p2p_data *p2p, struct p2p_device *dev)
{
struct p2p_device *go;
struct wpabuf *req;
+ unsigned int wait_time;
go = p2p_get_device(p2p, dev->member_in_go_dev);
if (go == NULL || dev->oper_freq <= 0) {
@@ -88,9 +89,12 @@ int p2p_send_dev_disc_req(struct p2p_data *p2p, struct p2p_device *dev)
os_memcpy(p2p->pending_client_disc_addr, dev->info.p2p_device_addr,
ETH_ALEN);
p2p->pending_action_state = P2P_PENDING_DEV_DISC_REQUEST;
+ wait_time = 1000;
+ if (p2p->cfg->max_listen && wait_time > p2p->cfg->max_listen)
+ wait_time = p2p->cfg->max_listen;
if (p2p_send_action(p2p, dev->oper_freq, go->info.p2p_device_addr,
p2p->cfg->dev_addr, go->info.p2p_device_addr,
- wpabuf_head(req), wpabuf_len(req), 1000) < 0) {
+ wpabuf_head(req), wpabuf_len(req), wait_time) < 0) {
p2p_dbg(p2p, "Failed to send Action frame");
wpabuf_free(req);
/* TODO: how to recover from failure? */
diff --git a/src/p2p/p2p_sd.c b/src/p2p/p2p_sd.c
index 9df834c4..6235b1de 100644
--- a/src/p2p/p2p_sd.c
+++ b/src/p2p/p2p_sd.c
@@ -266,6 +266,7 @@ int p2p_start_sd(struct p2p_data *p2p, struct p2p_device *dev)
int ret = 0;
struct p2p_sd_query *query;
int freq;
+ unsigned int wait_time;
freq = dev->listen_freq > 0 ? dev->listen_freq : dev->oper_freq;
if (freq <= 0) {
@@ -290,9 +291,12 @@ int p2p_start_sd(struct p2p_data *p2p, struct p2p_device *dev)
p2p->sd_query = query;
p2p->pending_action_state = P2P_PENDING_SD;
+ wait_time = 5000;
+ if (p2p->cfg->max_listen && wait_time > p2p->cfg->max_listen)
+ wait_time = p2p->cfg->max_listen;
if (p2p_send_action(p2p, freq, dev->info.p2p_device_addr,
p2p->cfg->dev_addr, dev->info.p2p_device_addr,
- wpabuf_head(req), wpabuf_len(req), 5000) < 0) {
+ wpabuf_head(req), wpabuf_len(req), wait_time) < 0) {
p2p_dbg(p2p, "Failed to send Action frame");
ret = -1;
}