diff options
Diffstat (limited to 'src/p2p')
-rw-r--r-- | src/p2p/p2p.c | 4 | ||||
-rw-r--r-- | src/p2p/p2p_go_neg.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index 716454c..7046f7b 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -2704,11 +2704,13 @@ static void p2p_go_neg_req_cb(struct p2p_data *p2p, int success) } if (success) { - dev->go_neg_req_sent++; if (dev->flags & P2P_DEV_USER_REJECTED) { p2p_set_state(p2p, P2P_IDLE); return; } + } else if (dev->go_neg_req_sent) { + /* Cancel the increment from p2p_connect_send() on failure */ + dev->go_neg_req_sent--; } if (!success && diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c index 5b723b6..cff1f45 100644 --- a/src/p2p/p2p_go_neg.c +++ b/src/p2p/p2p_go_neg.c @@ -227,7 +227,8 @@ int p2p_connect_send(struct p2p_data *p2p, struct p2p_device *dev) "P2P: Failed to send Action frame"); /* Use P2P find to recover and retry */ p2p_set_timeout(p2p, 0, 0); - } + } else + dev->go_neg_req_sent++; wpabuf_free(req); |