gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 03/03: MESSENGER: encode/decode connection message


From: gnunet
Subject: [gnunet] 03/03: MESSENGER: encode/decode connection message
Date: Tue, 02 Jan 2024 19:16:12 +0100

This is an automated email from the git hooks/post-receive script.

thejackimonster pushed a commit to branch master
in repository gnunet.

commit a118acdd652d35fc2445370ef7b7b86c510367d5
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Tue Jan 2 19:04:40 2024 +0100

    MESSENGER: encode/decode connection message
    
    Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
 src/service/messenger/messenger_api_message.c | 35 ++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/service/messenger/messenger_api_message.c 
b/src/service/messenger/messenger_api_message.c
index 0b6f6253e..51213bce5 100644
--- a/src/service/messenger/messenger_api_message.c
+++ b/src/service/messenger/messenger_api_message.c
@@ -240,6 +240,10 @@ get_message_body_kind_size (enum 
GNUNET_MESSENGER_MessageKind kind)
     length += member_size (struct GNUNET_MESSENGER_Message,
                            body.deletion.delay);
     break;
+  case GNUNET_MESSENGER_KIND_CONNECTION:
+    length += member_size (struct GNUNET_MESSENGER_Message, 
body.connection.amount);
+    length += member_size (struct GNUNET_MESSENGER_Message, 
body.connection.flags);
+    break;
   default:
     break;
   }
@@ -424,13 +428,13 @@ encode_message_body (enum GNUNET_MESSENGER_MessageKind 
kind,
                      char *buffer,
                      uint16_t offset)
 {
-  uint32_t version;
+  uint32_t value0, value1;
   switch (kind)
   {
   case GNUNET_MESSENGER_KIND_INFO:
-    version = GNUNET_htobe32 (body->info.messenger_version);
+    value0 = GNUNET_htobe32 (body->info.messenger_version);
 
-    encode_step (buffer, offset, &version);
+    encode_step (buffer, offset, &value0);
     break;
   case GNUNET_MESSENGER_KIND_JOIN:
     encode_step_key (buffer, offset, &(body->join.key), length);
@@ -486,6 +490,13 @@ encode_message_body (enum GNUNET_MESSENGER_MessageKind 
kind,
     encode_step (buffer, offset, &(body->deletion.hash));
     encode_step (buffer, offset, &(body->deletion.delay));
     break;
+  case GNUNET_MESSENGER_KIND_CONNECTION:
+    value0 = GNUNET_htobe32 (body->connection.amount);
+    value1 = GNUNET_htobe32 (body->connection.flags);
+
+    encode_step (buffer, offset, &value0);
+    encode_step (buffer, offset, &value1);
+    break;
   default:
     break;
   }
@@ -610,13 +621,13 @@ decode_message_body (enum GNUNET_MESSENGER_MessageKind 
*kind,
 
   length -= padding;
 
-  uint32_t version;
+  uint32_t value0, value1;
   switch (*kind)
   {
   case GNUNET_MESSENGER_KIND_INFO: {
-      decode_step (buffer, offset, &version);
+      decode_step (buffer, offset, &value0);
 
-      body->info.messenger_version = GNUNET_be32toh (version);
+      body->info.messenger_version = GNUNET_be32toh (value0);
       break;
     } case GNUNET_MESSENGER_KIND_JOIN: {
       decode_step_key (buffer, offset, &(body->join.key), length);
@@ -668,6 +679,13 @@ decode_message_body (enum GNUNET_MESSENGER_MessageKind 
*kind,
     decode_step (buffer, offset, &(body->deletion.hash));
     decode_step (buffer, offset, &(body->deletion.delay));
     break;
+  case GNUNET_MESSENGER_KIND_CONNECTION:
+    decode_step (buffer, offset, &value0);
+    decode_step (buffer, offset, &value1);
+
+    body->connection.amount = GNUNET_be32toh (value0);
+    body->connection.flags = GNUNET_be32toh (value1);
+    break;
   default:
     *kind = GNUNET_MESSENGER_KIND_UNKNOWN;
     break;
@@ -1053,6 +1071,7 @@ is_peer_message (const struct GNUNET_MESSENGER_Message 
*message)
   case GNUNET_MESSENGER_KIND_PEER:
   case GNUNET_MESSENGER_KIND_MISS:
   case GNUNET_MESSENGER_KIND_MERGE:
+  case GNUNET_MESSENGER_KIND_CONNECTION:
     return GNUNET_YES;
   default:
     return GNUNET_NO;
@@ -1098,6 +1117,8 @@ is_service_message (const struct GNUNET_MESSENGER_Message 
*message)
     return GNUNET_YES; // Prevent duplicate encryption breaking all access!
   case GNUNET_MESSENGER_KIND_DELETE:
     return GNUNET_YES; // Deletion should not apply individually! (inefficieny)
+  case GNUNET_MESSENGER_KIND_CONNECTION:
+    return GNUNET_YES; // Reserved for connection handling only!
   default:
     return GNUNET_SYSERR;
   }
@@ -1142,6 +1163,8 @@ filter_message_sending (const struct 
GNUNET_MESSENGER_Message *message)
     return GNUNET_NO; // Use #GNUNET_MESSENGER_send_message(...) with a 
contact instead!
   case GNUNET_MESSENGER_KIND_DELETE:
     return GNUNET_YES;
+  case GNUNET_MESSENGER_KIND_CONNECTION:
+    return GNUNET_SYSERR; // Reserved for connection handling only!
   default:
     return GNUNET_SYSERR;
   }

-- 
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]