P2P: Clear p2p_in_provisioning flag on group removal

Commit 77dfafd07d cancels group formation
timeout on group removal case but failed to reset the
p2p_in_provisioning flag. This can lead to repeated p2p_find failures if
the group gets removed before completion of the WPS provisioning step
(e.g., GO tears down the group). Fix this by clearing
p2p_pin_provisioning when cancelling group formation.

Signed-hostap: Vivek Natarajan <nataraja@qca.qualcomm.com>
This commit is contained in:
Vivek Natarajan 2013-03-11 20:47:24 +02:00 committed by Jouni Malinen
parent 9210bea172
commit c9c77083b3

View file

@ -323,9 +323,11 @@ static int wpas_p2p_group_delete(struct wpa_supplicant *wpa_s,
if (eloop_cancel_timeout(wpas_p2p_group_idle_timeout, wpa_s, NULL) > 0) if (eloop_cancel_timeout(wpas_p2p_group_idle_timeout, wpa_s, NULL) > 0)
wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group idle timeout"); wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group idle timeout");
if (eloop_cancel_timeout(wpas_p2p_group_formation_timeout, if (eloop_cancel_timeout(wpas_p2p_group_formation_timeout,
wpa_s->parent, NULL) > 0) wpa_s->parent, NULL) > 0) {
wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group formation " wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group formation "
"timeout"); "timeout");
wpa_s->p2p_in_provisioning = 0;
}
if (removal_reason != P2P_GROUP_REMOVAL_SILENT && ssid) if (removal_reason != P2P_GROUP_REMOVAL_SILENT && ssid)
wpas_notify_p2p_group_removed(wpa_s, ssid, gtype); wpas_notify_p2p_group_removed(wpa_s, ssid, gtype);