aboutsummaryrefslogtreecommitdiff
path: root/src/messenger/messenger_api_room.c
diff options
context:
space:
mode:
authorTheJackiMonster <thejackimonster@gmail.com>2021-05-24 01:30:17 +0200
committerTheJackiMonster <thejackimonster@gmail.com>2021-06-11 13:47:57 +0200
commitd0eec6097f79c7fb3ea8b5d8bb0dcca1da1f85a6 (patch)
treec0cc57a0f066bc1d3c528323c33903038747eca8 /src/messenger/messenger_api_room.c
parent2549225b825f34b0dfbe9f4a13f134963f3ba58d (diff)
downloadgnunet-d0eec6097f79c7fb3ea8b5d8bb0dcca1da1f85a6.tar.gz
gnunet-d0eec6097f79c7fb3ea8b5d8bb0dcca1da1f85a6.zip
-moved messenger service out of experimental
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com> -moved out of experimental, included protocol versions into ports and fixed byte-order of 32bit integers in messages Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat (limited to 'src/messenger/messenger_api_room.c')
-rw-r--r--src/messenger/messenger_api_room.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/messenger/messenger_api_room.c b/src/messenger/messenger_api_room.c
index 5b7edee60..6779984bd 100644
--- a/src/messenger/messenger_api_room.c
+++ b/src/messenger/messenger_api_room.c
@@ -305,3 +305,39 @@ iterate_room_members (struct GNUNET_MESSENGER_Room *room, GNUNET_MESSENGER_Membe
305 305
306 return GNUNET_CONTAINER_multishortmap_iterate(room->members, iterate_local_members, &call); 306 return GNUNET_CONTAINER_multishortmap_iterate(room->members, iterate_local_members, &call);
307} 307}
308
309struct GNUNET_MESSENGER_MemberFind
310{
311 struct GNUNET_MESSENGER_Contact *contact;
312 int result;
313};
314
315static int
316iterate_find_member (void* cls, const struct GNUNET_ShortHashCode *key, void *value)
317{
318 struct GNUNET_MESSENGER_MemberFind *find = cls;
319 struct GNUNET_MESSENGER_Contact *contact = value;
320
321 if (contact == find->contact)
322 {
323 find->result = GNUNET_YES;
324 return GNUNET_NO;
325 }
326
327 return GNUNET_YES;
328}
329
330int
331find_room_member (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Contact *contact)
332{
333 GNUNET_assert(room);
334
335 struct GNUNET_MESSENGER_MemberFind find;
336
337 find.contact = contact;
338 find.result = GNUNET_NO;
339
340 GNUNET_CONTAINER_multishortmap_iterate(room->members, iterate_find_member, &find);
341
342 return find.result;
343}