libgnunetchat

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

commit 48a024bc9e146a8bc861f9c58de65a769fdcaa40
parent a847b9eb6ee260eaa6f91916544ae3f94640e895
Author: Jacki <jacki@thejackimonster.de>
Date:   Thu,  1 Feb 2024 22:34:20 +0100

Add tag messages

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

Diffstat:
Minclude/gnunet/gnunet_chat_lib.h | 7++++++-
Msrc/gnunet_chat_lib.c | 17+++++++++++------
Msrc/gnunet_chat_util.c | 2++
3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/include/gnunet/gnunet_chat_lib.h b/include/gnunet/gnunet_chat_lib.h @@ -74,7 +74,7 @@ enum GNUNET_CHAT_MessageKind /** * The kind to inform that a context was updated. */ - GNUNET_CHAT_KIND_UPDATE = 4, /**< GNUNET_CHAT_KIND_UPDATE */ + GNUNET_CHAT_KIND_UPDATE = 4, /**< GNUNET_CHAT_KIND_UPDATE */ /** * The kind to inform that a contact has joined a chat. @@ -112,6 +112,11 @@ enum GNUNET_CHAT_MessageKind GNUNET_CHAT_KIND_DELETION = 11, /**< GNUNET_CHAT_KIND_DELETION */ /** + * The kind to tag a previous message. + */ + GNUNET_CHAT_KIND_TAG = 12, /**< GNUNET_CHAT_KIND_TAG */ + + /** * An unknown kind of message. */ GNUNET_CHAT_KIND_UNKNOWN = 0 /**< GNUNET_CHAT_KIND_UNKNOWN */ diff --git a/src/gnunet_chat_lib.c b/src/gnunet_chat_lib.c @@ -1725,12 +1725,15 @@ GNUNET_CHAT_message_get_text (const struct GNUNET_CHAT_Message *message) if (GNUNET_CHAT_FLAG_WARNING == message->flag) return message->warning; - if (GNUNET_MESSENGER_KIND_FILE == message->msg->header.kind) + + if (GNUNET_MESSENGER_KIND_TEXT == message->msg->header.kind) + return message->msg->body.text.text; + else if (GNUNET_MESSENGER_KIND_FILE == message->msg->header.kind) return message->msg->body.file.name; - if (GNUNET_MESSENGER_KIND_TEXT != message->msg->header.kind) + else if (GNUNET_MESSENGER_KIND_TAG == message->msg->header.kind) + return message->msg->body.tag.tag; + else return NULL; - - return message->msg->body.text.text; } @@ -1782,8 +1785,10 @@ GNUNET_CHAT_message_get_target (const struct GNUNET_CHAT_Message *message) if (GNUNET_MESSENGER_KIND_DELETE == message->msg->header.kind) target = GNUNET_CONTAINER_multihashmap_get( - message->context->messages, &(message->msg->body.deletion.hash) - ); + message->context->messages, &(message->msg->body.deletion.hash)); + else if (GNUNET_MESSENGER_KIND_TAG == message->msg->header.kind) + target = GNUNET_CONTAINER_multihashmap_get( + message->context->messages, &(message->msg->body.tag.hash)); else target = NULL; diff --git a/src/gnunet_chat_util.c b/src/gnunet_chat_util.c @@ -421,6 +421,8 @@ util_message_kind_from_kind (enum GNUNET_MESSENGER_MessageKind kind) return GNUNET_CHAT_KIND_DELETION; case GNUNET_MESSENGER_KIND_TICKET: return GNUNET_CHAT_KIND_CONTACT; + case GNUNET_MESSENGER_KIND_TAG: + return GNUNET_CHAT_KIND_TAG; default: return GNUNET_CHAT_KIND_UNKNOWN; }