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