|
@@ -979,10 +979,8 @@ void p2p_process_go_neg_resp(struct p2p_data *p2p, const u8 *sa,
|
|
"P2P: Mandatory P2P Group ID attribute missing from "
|
|
"P2P: Mandatory P2P Group ID attribute missing from "
|
|
"GO Negotiation Response");
|
|
"GO Negotiation Response");
|
|
p2p->ssid_len = 0;
|
|
p2p->ssid_len = 0;
|
|
-#ifdef CONFIG_P2P_STRICT
|
|
|
|
status = P2P_SC_FAIL_INVALID_PARAMS;
|
|
status = P2P_SC_FAIL_INVALID_PARAMS;
|
|
goto fail;
|
|
goto fail;
|
|
-#endif /* CONFIG_P2P_STRICT */
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (!msg.config_timeout) {
|
|
if (!msg.config_timeout) {
|
|
@@ -1112,6 +1110,11 @@ fail:
|
|
p2p_go_neg_failed(p2p, dev, -1);
|
|
p2p_go_neg_failed(p2p, dev, -1);
|
|
}
|
|
}
|
|
wpabuf_free(conf);
|
|
wpabuf_free(conf);
|
|
|
|
+ if (status != P2P_SC_SUCCESS) {
|
|
|
|
+ wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
|
|
|
|
+ "P2P: GO Negotiation failed");
|
|
|
|
+ p2p_go_neg_failed(p2p, dev, status);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1169,6 +1172,7 @@ void p2p_process_go_neg_conf(struct p2p_data *p2p, const u8 *sa,
|
|
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
|
|
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
|
|
"P2P: GO Negotiation rejected: status %d",
|
|
"P2P: GO Negotiation rejected: status %d",
|
|
*msg.status);
|
|
*msg.status);
|
|
|
|
+ p2p_go_neg_failed(p2p, dev, *msg.status);
|
|
p2p_parse_free(&msg);
|
|
p2p_parse_free(&msg);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -1182,10 +1186,9 @@ void p2p_process_go_neg_conf(struct p2p_data *p2p, const u8 *sa,
|
|
"P2P: Mandatory P2P Group ID attribute missing from "
|
|
"P2P: Mandatory P2P Group ID attribute missing from "
|
|
"GO Negotiation Confirmation");
|
|
"GO Negotiation Confirmation");
|
|
p2p->ssid_len = 0;
|
|
p2p->ssid_len = 0;
|
|
-#ifdef CONFIG_P2P_STRICT
|
|
|
|
|
|
+ p2p_go_neg_failed(p2p, dev, P2P_SC_FAIL_INVALID_PARAMS);
|
|
p2p_parse_free(&msg);
|
|
p2p_parse_free(&msg);
|
|
return;
|
|
return;
|
|
-#endif /* CONFIG_P2P_STRICT */
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (!msg.operating_channel) {
|
|
if (!msg.operating_channel) {
|