P2P: Do not use prov_disc_resp() callback for rejected PD

Commit 349b213cc8 added a separate
callback prov_disc_fail() for indicating PD failures, but it left the
Provision Discovery Response handler to call both callbacks in case the
peer rejected the PD. Commit f65a239ba4
added ctrl_iface event for PD failures. This combination can result in
two ctrl_iface events in the peer rejecting a PD case. Clean this up by
only indicating the failure event.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2012-05-08 17:02:28 +03:00 committed by Jouni Malinen
parent 3fe8b68d63
commit 701fe506c8

View file

@ -199,6 +199,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
struct p2p_message msg;
struct p2p_device *dev;
u16 report_config_methods = 0;
int success = 0;
if (p2p_parse(data, len, &msg))
return;
@ -267,11 +268,12 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
dev->wps_prov_info = msg.wps_config_methods;
p2p_parse_free(&msg);
success = 1;
out:
dev->req_config_methods = 0;
p2p->cfg->send_action_done(p2p->cfg->cb_ctx);
if (p2p->cfg->prov_disc_resp)
if (success && p2p->cfg->prov_disc_resp)
p2p->cfg->prov_disc_resp(p2p->cfg->cb_ctx, sa,
report_config_methods);
}