P2PS: Process P2PS provisioning commands

This extends wpas_p2p_prov_disc() implementation to accept P2PS
parameters. None of the callers are yet using this functionality; the
following commit introduces a user.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Krishna Vamsi 2014-12-10 19:55:18 +05:30 committed by Jouni Malinen
parent 369678ad14
commit 6d9085145c
8 changed files with 268 additions and 9 deletions

View file

@ -159,6 +159,13 @@ struct p2ps_advertisement * p2p_get_p2ps_adv_list(struct p2p_data *p2p)
}
void p2p_set_intended_addr(struct p2p_data *p2p, const u8 *intended_addr)
{
if (p2p && intended_addr)
os_memcpy(p2p->intended_addr, intended_addr, ETH_ALEN);
}
u16 p2p_get_provisioning_info(struct p2p_data *p2p, const u8 *addr)
{
struct p2p_device *dev = NULL;

View file

@ -1955,6 +1955,13 @@ const u8 * p2p_get_go_neg_peer(struct p2p_data *p2p);
*/
unsigned int p2p_get_group_num_members(struct p2p_group *group);
/**
* p2p_client_limit_reached - Check if client limit is reached
* @group: P2P group context from p2p_group_init()
* Returns: 1 if no of clients limit reached
*/
int p2p_client_limit_reached(struct p2p_group *group);
/**
* p2p_iterate_group_members - Iterate group members
* @group: P2P group context from p2p_group_init()
@ -2170,6 +2177,8 @@ void p2p_loop_on_known_peers(struct p2p_data *p2p,
void p2p_set_vendor_elems(struct p2p_data *p2p, struct wpabuf **vendor_elem);
void p2p_set_intended_addr(struct p2p_data *p2p, const u8 *intended_addr);
struct p2ps_advertisement *
p2p_service_p2ps_id(struct p2p_data *p2p, u32 adv_id);
int p2p_service_add_asp(struct p2p_data *p2p, int auto_accept, u32 adv_id,

View file

@ -988,6 +988,15 @@ unsigned int p2p_get_group_num_members(struct p2p_group *group)
}
int p2p_client_limit_reached(struct p2p_group *group)
{
if (!group || !group->cfg)
return 1;
return group->num_members >= group->cfg->max_clients;
}
const u8 * p2p_iterate_group_members(struct p2p_group *group, void **next)
{
struct p2p_group_member *iter = *next;