[PATCH 3/6] P2P: Set p2p_go_wait_client in invitation_result() cb

Jouni Malinen j at w1.fi
Sat Nov 21 08:28:39 PST 2015


On Tue, Nov 03, 2015 at 04:24:58PM +0200, Ilan Peer wrote:
> When an invitation to join an existing group is accepted by the
> peer device, set p2p_go_wait_client to the current time so
> that wpas_p2p_in_progress() would return != 0, thus preventing
> P2P CSA, scanning etc., that would interfere with the peer
> device connection.

> diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
> @@ -3101,7 +3101,13 @@ static void wpas_invitation_result(void *ctx, int status, const u8 *bssid,
>  	if (wpa_s->pending_invite_ssid_id == -1) {
>  		if (status == P2P_SC_FAIL_UNKNOWN_GROUP)
>  			wpas_remove_persistent_client(wpa_s, peer);
> -		return; /* Invitation to active group */
> +
> +		/*
> +		 * Invitation to active group. Set the client wait, to allow
> +		 * provisioning and connection.
> +		 */
> +		os_get_reltime(&wpa_s->global->p2p_go_wait_client);
> +		return;
>  	}

Shouldn't this check for status == P2P_SC_SUCCESS to match that comment
about accepted invitation in the commit message? In addition to that,
this looks a bit confusing since this location can be reached both in GO
and P2P Client role in an existing group. I'd understand the GO case,
but setting p2p_go_wait_client on an interface that is in P2P Client
role would make this more difficult to understand.
 
-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the Hostap mailing list