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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux