libgnunetchat

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

commit 864110d3d23724a50ddc974ffb4b5de4addea958
parent ca161736d0d14109a22eadd22207e6eba37d7db9
Author: Jacki <jacki@thejackimonster.de>
Date:   Mon, 19 Feb 2024 01:50:58 +0100

Fix handling of deleted messages for async callback processing

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

Diffstat:
Msrc/gnunet_chat_contact_intern.c | 3++-
Msrc/gnunet_chat_handle_intern.c | 6+++---
Msrc/gnunet_chat_message.c | 3++-
3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/gnunet_chat_contact_intern.c b/src/gnunet_chat_contact_intern.c @@ -74,7 +74,8 @@ it_contact_find_rejection (void *cls, const struct GNUNET_CHAT_Message *message = value; - if (GNUNET_YES != message_has_msg(message)) + if ((GNUNET_YES != message_has_msg(message)) || + (message->flags & GNUNET_MESSENGER_FLAG_DELETE)) return GNUNET_YES; if (message->flags & GNUNET_MESSENGER_FLAG_SENT) diff --git a/src/gnunet_chat_handle_intern.c b/src/gnunet_chat_handle_intern.c @@ -974,9 +974,6 @@ skip_sender_handing: handle->msg_cb(handle->msg_cls, context, message); clear_dependencies: - if (GNUNET_MESSENGER_FLAG_DELETE & message->flags) - message->msg = NULL; - GNUNET_CONTAINER_multihashmap_get_multiple(context->dependencies, &(message->hash), it_context_iterate_dependencies, @@ -1066,6 +1063,9 @@ on_handle_message (void *cls, if (message) { + if (message->flags & GNUNET_MESSENGER_FLAG_DELETE) + return; + message_update_msg (message, flags, msg); if (0 == (message->flags & GNUNET_MESSENGER_FLAG_UPDATE)) diff --git a/src/gnunet_chat_message.c b/src/gnunet_chat_message.c @@ -89,7 +89,8 @@ message_update_msg (struct GNUNET_CHAT_Message* message, { GNUNET_assert((message) && (msg)); - if (message->flag != GNUNET_CHAT_FLAG_NONE) + if ((GNUNET_YES != message_has_msg(message)) || + (message->flags & GNUNET_MESSENGER_FLAG_DELETE)) return; if (flags & GNUNET_MESSENGER_FLAG_UPDATE)