gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]