[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] branch master updated: MESSENGER: Implement ticket message
From: |
gnunet |
Subject: |
[gnunet] branch master updated: MESSENGER: Implement ticket message |
Date: |
Wed, 03 Jan 2024 03:51:46 +0100 |
This is an automated email from the git hooks/post-receive script.
thejackimonster pushed a commit to branch master
in repository gnunet.
The following commit(s) were added to refs/heads/master by this push:
new db937c59c MESSENGER: Implement ticket message
db937c59c is described below
commit db937c59ca9c1d4679706851e4fefc06bbdbe640
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Tue Jan 2 19:15:38 2024 +0100
MESSENGER: Implement ticket message
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
src/include/gnunet_messenger_service.h | 21 +++++++++++++++++++++
src/service/messenger/messenger_api_message.c | 14 ++++++++++++++
src/service/messenger/messenger_api_message_kind.c | 18 ++++++++++++++++++
src/service/messenger/messenger_api_message_kind.h | 15 ++++++++++++++-
4 files changed, 67 insertions(+), 1 deletion(-)
diff --git a/src/include/gnunet_messenger_service.h
b/src/include/gnunet_messenger_service.h
index c647272df..ad4151aed 100644
--- a/src/include/gnunet_messenger_service.h
+++ b/src/include/gnunet_messenger_service.h
@@ -42,6 +42,7 @@ extern "C" {
#include "gnunet_common.h"
#include "gnunet_configuration_lib.h"
#include "gnunet_identity_service.h"
+#include "gnunet_reclaim_lib.h"
#include "gnunet_scheduler_lib.h"
#include "gnunet_time_lib.h"
#include "gnunet_util_lib.h"
@@ -200,6 +201,11 @@ enum GNUNET_MESSENGER_MessageKind
*/
GNUNET_MESSENGER_KIND_CONNECTION = 16,
+ /**
+ * The ticket kind. The message contains a #GNUNET_MESSENGER_MessageTicket
body.
+ */
+ GNUNET_MESSENGER_KIND_TICKET = 17,
+
/**
* The unknown kind. The message contains an unknown body.
*/
@@ -515,6 +521,20 @@ struct GNUNET_MESSENGER_MessageConnection
uint32_t flags;
};
+/**
+ * A ticket message body
+ * This allows to exchange ticket identifiers with an audience.
+ *
+ * Message-body-size: 32 bytes
+ */
+struct GNUNET_MESSENGER_MessageTicket
+{
+ /**
+ * The identifier of a RECLAIM ticket.
+ */
+ struct GNUNET_RECLAIM_Identifier identifier;
+};
+
/**
* The unified body of a #GNUNET_MESSENGER_Message.
*/
@@ -538,6 +558,7 @@ struct GNUNET_MESSENGER_MessageBody
struct GNUNET_MESSENGER_MessagePrivate privacy;
struct GNUNET_MESSENGER_MessageDelete deletion;
struct GNUNET_MESSENGER_MessageConnection connection;
+ struct GNUNET_MESSENGER_MessageTicket ticket;
};
};
diff --git a/src/service/messenger/messenger_api_message.c
b/src/service/messenger/messenger_api_message.c
index 51213bce5..486a0e081 100644
--- a/src/service/messenger/messenger_api_message.c
+++ b/src/service/messenger/messenger_api_message.c
@@ -24,6 +24,7 @@
*/
#include "messenger_api_message.h"
+#include "gnunet_messenger_service.h"
struct GNUNET_MESSENGER_MessageSignature
{
@@ -244,6 +245,9 @@ get_message_body_kind_size (enum
GNUNET_MESSENGER_MessageKind kind)
length += member_size (struct GNUNET_MESSENGER_Message,
body.connection.amount);
length += member_size (struct GNUNET_MESSENGER_Message,
body.connection.flags);
break;
+ case GNUNET_MESSENGER_KIND_TICKET:
+ length += member_size (struct GNUNET_MESSENGER_Message,
body.ticket.identifier);
+ break;
default:
break;
}
@@ -497,6 +501,9 @@ encode_message_body (enum GNUNET_MESSENGER_MessageKind kind,
encode_step (buffer, offset, &value0);
encode_step (buffer, offset, &value1);
break;
+ case GNUNET_MESSENGER_KIND_TICKET:
+ encode_step (buffer, offset, &(body->ticket.identifier));
+ break;
default:
break;
}
@@ -686,6 +693,9 @@ decode_message_body (enum GNUNET_MESSENGER_MessageKind
*kind,
body->connection.amount = GNUNET_be32toh (value0);
body->connection.flags = GNUNET_be32toh (value1);
break;
+ case GNUNET_MESSENGER_KIND_TICKET:
+ decode_step (buffer, offset, &(body->ticket.identifier));
+ break;
default:
*kind = GNUNET_MESSENGER_KIND_UNKNOWN;
break;
@@ -1119,6 +1129,8 @@ is_service_message (const struct GNUNET_MESSENGER_Message
*message)
return GNUNET_YES; // Deletion should not apply individually! (inefficieny)
case GNUNET_MESSENGER_KIND_CONNECTION:
return GNUNET_YES; // Reserved for connection handling only!
+ case GNUNET_MESSENGER_KIND_TICKET:
+ return GNUNET_NO;
default:
return GNUNET_SYSERR;
}
@@ -1165,6 +1177,8 @@ filter_message_sending (const struct
GNUNET_MESSENGER_Message *message)
return GNUNET_YES;
case GNUNET_MESSENGER_KIND_CONNECTION:
return GNUNET_SYSERR; // Reserved for connection handling only!
+ case GNUNET_MESSENGER_KIND_TICKET:
+ return GNUNET_YES;
default:
return GNUNET_SYSERR;
}
diff --git a/src/service/messenger/messenger_api_message_kind.c
b/src/service/messenger/messenger_api_message_kind.c
index 7e8fd7a1d..c9cf227a2 100644
--- a/src/service/messenger/messenger_api_message_kind.c
+++ b/src/service/messenger/messenger_api_message_kind.c
@@ -187,3 +187,21 @@ create_message_delete (const struct GNUNET_HashCode *hash,
return message;
}
+
+struct GNUNET_MESSENGER_Message*
+create_message_ticket (const struct GNUNET_RECLAIM_Identifier *identifier)
+{
+ if (! identifier)
+ return NULL;
+
+ struct GNUNET_MESSENGER_Message *message = create_message (
+ GNUNET_MESSENGER_KIND_TICKET);
+
+ if (! message)
+ return NULL;
+
+ GNUNET_memcpy (&(message->body.ticket.identifier), identifier,
+ sizeof(struct GNUNET_RECLAIM_Identifier));
+
+ return message;
+}
diff --git a/src/service/messenger/messenger_api_message_kind.h
b/src/service/messenger/messenger_api_message_kind.h
index 01bc9a232..20e3cba83 100644
--- a/src/service/messenger/messenger_api_message_kind.h
+++ b/src/service/messenger/messenger_api_message_kind.h
@@ -27,6 +27,7 @@
#define GNUNET_SERVICE_MESSENGER_MESSAGE_KIND_H
#include "gnunet_messenger_service.h"
+#include "gnunet_reclaim_lib.h"
#include "gnunet_util_lib.h"
#include "gnunet_identity_service.h"
#include "gnunet_time_lib.h"
@@ -116,7 +117,8 @@ struct GNUNET_MESSENGER_Message*
create_message_text (const char *text);
/**
- * Creates and allocates a new delete message containing the <i>hash</i> of a
message to delete after a specific <i>delay</i>.
+ * Creates and allocates a new delete message containing the <i>hash</i> of a
message to delete
+ * after a specific <i>delay</i>.
* (all values are stored as copy)
*
* @param[in] hash Hash of message
@@ -127,4 +129,15 @@ struct GNUNET_MESSENGER_Message*
create_message_delete (const struct GNUNET_HashCode *hash,
const struct GNUNET_TIME_Relative delay);
+/**
+ * Creates and allocates a new ticket message containing the <i>identifier</i>
of a ticket to
+ * exchange it with a given audience.
+ * (all values are stored as copy)
+ *
+ * @param[in] identifier Identifier of ticket
+ * @return New message
+ */
+struct GNUNET_MESSENGER_Message*
+create_message_ticket (const struct GNUNET_RECLAIM_Identifier *identifier);
+
#endif //GNUNET_SERVICE_MESSENGER_MESSAGE_KIND_H
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnunet] branch master updated: MESSENGER: Implement ticket message,
gnunet <=