P2PS: Change connection capability handling
Change the connection capability handling so that in case there are no active roles, the peer has an active GO, and the advertisement supports operation as a client, the returned connection capability is set to client. Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
ab804bcb6f
commit
f8a80e39b3
1 changed files with 19 additions and 2 deletions
|
@ -699,10 +699,20 @@ static u8 p2ps_group_capability(void *ctx, u8 incoming, u8 role)
|
|||
/* If a required role has been specified, handle it here */
|
||||
if (role && role != P2PS_SETUP_NEW) {
|
||||
switch (incoming) {
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_NEW:
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_CLIENT:
|
||||
/*
|
||||
* Peer has an active GO, so if the role allows it and
|
||||
* we do not have any active roles, become client.
|
||||
*/
|
||||
if ((role & P2PS_SETUP_CLIENT) && !go_wpa_s &&
|
||||
!cli_wpa_s)
|
||||
return P2PS_SETUP_CLIENT;
|
||||
|
||||
/* fall through */
|
||||
|
||||
case P2PS_SETUP_NONE:
|
||||
case P2PS_SETUP_NEW:
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_CLIENT:
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_NEW:
|
||||
conncap = role;
|
||||
goto grp_owner;
|
||||
|
||||
|
@ -758,6 +768,13 @@ static u8 p2ps_group_capability(void *ctx, u8 incoming, u8 role)
|
|||
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_NEW:
|
||||
case P2PS_SETUP_GROUP_OWNER | P2PS_SETUP_CLIENT:
|
||||
/*
|
||||
* Peer has an active GO, so if the role allows it and
|
||||
* we do not have any active roles, become client.
|
||||
*/
|
||||
if ((role & P2PS_SETUP_CLIENT) && !go_wpa_s && !cli_wpa_s)
|
||||
return P2PS_SETUP_CLIENT;
|
||||
|
||||
if (cli_wpa_s)
|
||||
conncap = P2PS_SETUP_GROUP_OWNER;
|
||||
else {
|
||||
|
|
Loading…
Reference in a new issue