]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Allow access to group members
authorJohannes Berg <johannes.berg@intel.com>
Fri, 17 Dec 2010 16:34:16 +0000 (18:34 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 17 Dec 2010 16:34:16 +0000 (18:34 +0200)
Some new code will require access to P2P group members, so add API to
retrieve the number of members and iterate the members themselves.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
src/p2p/p2p.h
src/p2p/p2p_group.c

index ba88f74f4b763e4117e731db91f4d7aed667f489..0a7e6b25395279fd0aa2b021b0dda2b7c28002c6 100644 (file)
@@ -1324,4 +1324,20 @@ void p2p_set_best_channels(struct p2p_data *p2p, int freq_24, int freq_5,
 
 const u8 * p2p_get_go_neg_peer(struct p2p_data *p2p);
 
+/**
+ * p2p_get_group_num_members - Get number of members in group
+ * @group: P2P group context from p2p_group_init()
+ * Returns: Number of members in the group
+ */
+unsigned int p2p_get_group_num_members(struct p2p_group *group);
+
+/**
+ * p2p_iterate_group_members - Iterate group members
+ * @group: P2P group context from p2p_group_init()
+ * @next: iteration pointer, must be a pointer to a void * that is set to %NULL
+ *     on the first call and not modified later
+ * Returns: A P2P Interface Address for each call and %NULL for no more members
+ */
+const u8 * p2p_iterate_group_members(struct p2p_group *group, void **next);
+
 #endif /* P2P_H */
index 7d2588598403763715c5ca1add9dbd54bbf1ea52..14a475d01908c1a226c24347d8ea7229d94b59be 100644 (file)
@@ -647,3 +647,27 @@ u8 p2p_group_presence_req(struct p2p_group *group,
 
        return P2P_SC_SUCCESS;
 }
+
+
+unsigned int p2p_get_group_num_members(struct p2p_group *group)
+{
+       return group->num_members;
+}
+
+
+const u8 * p2p_iterate_group_members(struct p2p_group *group, void **next)
+{
+       struct p2p_group_member *iter = *next;
+
+       if (!iter)
+               iter = group->members;
+       else
+               iter = iter->next;
+
+       *next = iter;
+
+       if (!iter)
+               return NULL;
+
+       return iter->addr;
+}