P2P: Provide local event on GO Neg Req rejection

If an authorized (p2p_connect used locally) GO Negotiation is
rejected when receiving GO Negotiation Request from the peer,
indicate the failure with a ctrl_interface P2P-GO-NEG-FAILURE
event. Previously, this event was only shown on the peer (i.e.,
the device receiving the GO Negotiation Response with non-zero
Status code).
This commit is contained in:
Jouni Malinen 2010-09-06 19:00:43 +03:00 committed by Jouni Malinen
parent 014732ea81
commit fbe7027239
2 changed files with 6 additions and 0 deletions

View file

@ -2070,6 +2070,10 @@ static void p2p_go_neg_resp_failure_cb(struct p2p_data *p2p, int success)
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
"P2P: GO Negotiation Response (failure) TX callback: "
"success=%d", success);
if (p2p->go_neg_peer && p2p->go_neg_peer->status != P2P_SC_SUCCESS) {
p2p_go_neg_failed(p2p, p2p->go_neg_peer,
p2p->go_neg_peer->status);
}
}

View file

@ -580,6 +580,8 @@ void p2p_process_go_neg_req(struct p2p_data *p2p, const u8 *sa,
}
fail:
if (dev)
dev->status = status;
resp = p2p_build_go_neg_resp(p2p, dev, msg.dialog_token, status,
!tie_breaker);
p2p_parse_free(&msg);