|
@@ -1319,8 +1319,16 @@ int p2p_connect(struct p2p_data *p2p, const u8 *peer_addr,
|
|
dev->flags &= ~P2P_DEV_WAIT_GO_NEG_CONFIRM;
|
|
dev->flags &= ~P2P_DEV_WAIT_GO_NEG_CONFIRM;
|
|
if (pd_before_go_neg)
|
|
if (pd_before_go_neg)
|
|
dev->flags |= P2P_DEV_PD_BEFORE_GO_NEG;
|
|
dev->flags |= P2P_DEV_PD_BEFORE_GO_NEG;
|
|
- else
|
|
+ else {
|
|
dev->flags &= ~P2P_DEV_PD_BEFORE_GO_NEG;
|
|
dev->flags &= ~P2P_DEV_PD_BEFORE_GO_NEG;
|
|
|
|
+
|
|
|
|
+ * Assign dialog token here to use the same value in each
|
|
|
|
+ * retry within the same GO Negotiation exchange.
|
|
|
|
+ */
|
|
|
|
+ dev->dialog_token++;
|
|
|
|
+ if (dev->dialog_token == 0)
|
|
|
|
+ dev->dialog_token = 1;
|
|
|
|
+ }
|
|
dev->connect_reqs = 0;
|
|
dev->connect_reqs = 0;
|
|
dev->go_neg_req_sent = 0;
|
|
dev->go_neg_req_sent = 0;
|
|
dev->go_state = UNKNOWN_GO;
|
|
dev->go_state = UNKNOWN_GO;
|