[PATCH 2/7] p2p: Add a utility to run a callback on all available groups
Tomasz Bursztyka
tomasz.bursztyka
Mon Jun 2 07:42:03 PDT 2014
This will be useful in wpa_supplicant to match group's ssids against a
specific one.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka at linux.intel.com>
---
src/p2p/p2p.h | 13 +++++++++++++
src/p2p/p2p_group.c | 17 +++++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/src/p2p/p2p.h b/src/p2p/p2p.h
index 3c11a45..6c399a0 100644
--- a/src/p2p/p2p.h
+++ b/src/p2p/p2p.h
@@ -1800,6 +1800,19 @@ int p2p_group_is_client_connected(struct p2p_group *group, const u8 *dev_addr);
const struct p2p_group_config *p2p_group_get_config(struct p2p_group *group);
/**
+ * p2p_loop_on_all_group - Run the given callback on all groups
+ * @p2p: P2P module context from p2p_init()
+ * @group_callback: The callback function pointer
+ * @user_data: Some user data pointer which can be %NULL
+ * Returns: Once the group list has been entirely gone through or when the
+ * callback has returned 0.
+ */
+void p2p_loop_on_all_group(struct p2p_data *p2p,
+ int (*group_callback) (struct p2p_group *group,
+ void *user_data),
+ void *user_data);
+
+/**
* p2p_get_peer_found - Get P2P peer info structure of a found peer
* @p2p: P2P module context from p2p_init()
* @addr: P2P Device Address of the peer or %NULL to indicate the first peer
diff --git a/src/p2p/p2p_group.c b/src/p2p/p2p_group.c
index 07ce655..2f8565b 100644
--- a/src/p2p/p2p_group.c
+++ b/src/p2p/p2p_group.c
@@ -1019,3 +1019,20 @@ const struct p2p_group_config *p2p_group_get_config(struct p2p_group *group)
{
return group->cfg;
}
+
+
+void p2p_loop_on_all_group(struct p2p_data *p2p,
+ int (*group_callback) (struct p2p_group *,
+ void *),
+ void *user_data)
+{
+ int i;
+
+ if (group_callback == NULL)
+ return;
+
+ for (i = 0; i < p2p->num_groups; i++) {
+ if (!group_callback(p2p->groups[i], user_data))
+ break;
+ }
+}
--
1.8.5.5
More information about the Hostap
mailing list