diff options
Diffstat (limited to 'src/p2p/p2p.c')
-rw-r--r-- | src/p2p/p2p.c | 11 |
1 files changed, 10 insertions, 1 deletions
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) |