From 1a2ce111ade9563d99ed7bb8156d6148ffd6c3a3 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Tue, 30 Oct 2012 22:22:52 -0700 Subject: Increase timeouts for p2p Dongles can be slow to respond and a quick turn around time on packets does not help. Allow for upto 350ms on retry attempts for provision discovery, negotiation and invitation This will catch slow responses within the first attempt and prevent any kind of issues with sequence number handling Bug: 7445415 Change-Id: I88a849d400b10f42ac298bad6d01f49803fcc8ba --- src/p2p/p2p.c | 16 ++++++++++++++++ src/p2p/p2p_invitation.c | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index f038812..a3eaa8c 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -2811,7 +2811,11 @@ static void p2p_prov_disc_cb(struct p2p_data *p2p, int success) p2p_continue_find(p2p); else if (p2p->user_initiated_pd) { p2p->pending_action_state = P2P_PENDING_PD; +#ifdef ANDROID_P2P + p2p_set_timeout(p2p, 0, 350000); +#else p2p_set_timeout(p2p, 0, 300000); +#endif } return; } @@ -2828,7 +2832,11 @@ static void p2p_prov_disc_cb(struct p2p_data *p2p, int success) /* Wait for response from the peer */ if (p2p->state == P2P_SEARCH) p2p_set_state(p2p, P2P_PD_DURING_FIND); +#ifdef ANDROID_P2P + p2p_set_timeout(p2p, 0, 350000); +#else p2p_set_timeout(p2p, 0, 200000); +#endif } @@ -2943,7 +2951,11 @@ static void p2p_go_neg_req_cb(struct p2p_data *p2p, int success) * channel. */ p2p_set_state(p2p, P2P_CONNECT); +#ifdef ANDROID_P2P + p2p_set_timeout(p2p, 0, 350000); +#else p2p_set_timeout(p2p, 0, success ? 200000 : 100000); +#endif } @@ -2959,7 +2971,11 @@ static void p2p_go_neg_resp_cb(struct p2p_data *p2p, int success) return; } p2p_set_state(p2p, P2P_CONNECT); +#ifdef ANDROID_P2P + p2p_set_timeout(p2p, 0, 350000); +#else p2p_set_timeout(p2p, 0, 250000); +#endif } diff --git a/src/p2p/p2p_invitation.c b/src/p2p/p2p_invitation.c index 769e57b..7bf6600 100644 --- a/src/p2p/p2p_invitation.c +++ b/src/p2p/p2p_invitation.c @@ -506,7 +506,11 @@ void p2p_invitation_req_cb(struct p2p_data *p2p, int success) * channel. */ p2p_set_state(p2p, P2P_INVITE); +#ifdef ANDROID_P2P + p2p_set_timeout(p2p, 0, 350000); +#else p2p_set_timeout(p2p, 0, 100000); +#endif } -- cgit v1.1