From 434905e01173e44fad1264ba62c0854caea20bd1 Mon Sep 17 00:00:00 2001 From: Jithu Jance Date: Tue, 19 Aug 2014 14:19:38 -0700 Subject: [PATCH] P2P: Clear the discovery state incase of deffered GO Neg response Bug: 17027752 Change-Id: I7d16080864264b838169f7b477598353c5d61d37 Signed-off-by: Dmitry Shmidt --- src/p2p/p2p.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index 767706c01..5d6abe301 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -3572,8 +3572,17 @@ static void p2p_go_neg_resp_failure_cb(struct p2p_data *p2p, int success, struct p2p_device *dev; dev = p2p_get_device(p2p, addr); if (dev && - dev->status == P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE) + dev->status == P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE) { dev->flags |= P2P_DEV_PEER_WAITING_RESPONSE; + if ((p2p->state == P2P_SEARCH) || + (p2p->state == P2P_LISTEN_ONLY)) { + /* Clear our search state or Listen state since + * now peer is awaiting response from our side. + */ + p2p_dbg(p2p, "Clear the P2P discovery state"); + p2p_stop_find(p2p); + } + } } if (p2p->state == P2P_SEARCH || p2p->state == P2P_SD_DURING_FIND) -- 2.47.2