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:
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;
}