libgnunetchat

library for GNUnet Messenger
Log | Files | Refs | README | LICENSE

commit d2ad86a3abbb89e7d8e685bf729c3167f87ff584
parent 2058c5b3043c8627d65e79477503fc9c0dcf1a78
Author: Jacki <jacki@thejackimonster.de>
Date:   Tue,  3 Jun 2025 17:36:33 +0200

Automatically request previous epochs to complete member counts

Signed-off-by: Jacki <jacki@thejackimonster.de>

Diffstat:
Msrc/gnunet_chat_handle_intern.c | 21++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/gnunet_chat_handle_intern.c b/src/gnunet_chat_handle_intern.c @@ -1020,10 +1020,25 @@ on_handle_message (void *cls, handle->contexts, GNUNET_MESSENGER_room_get_key(room) ); - context_request_message(context, &(msg->header.previous)); + switch (msg->header.kind) + { + case GNUNET_MESSENGER_KIND_JOIN: + context_request_message(context, &(msg->body.join.epoch)); + break; + case GNUNET_MESSENGER_KIND_LEAVE: + context_request_message(context, &(msg->body.leave.epoch)); + break; + case GNUNET_MESSENGER_KIND_MERGE: + context_request_message(context, &(msg->body.merge.epochs[0])); + context_request_message(context, &(msg->body.merge.epochs[1])); - if (GNUNET_MESSENGER_KIND_MERGE == msg->header.kind) - context_request_message(context, &(msg->body.merge.previous)); + context_request_message(context, &(msg->body.merge.previous)); + break; + default: + break; + } + + context_request_message(context, &(msg->header.previous)); if ((GNUNET_CHAT_KIND_UNKNOWN == util_message_kind_from_kind(msg->header.kind)) || (GNUNET_OK != intern_provide_contact_for_member(handle, sender, NULL)))