summaryrefslogtreecommitdiff
path: root/src/messenger/messenger_api_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/messenger/messenger_api_message.c')
-rw-r--r--src/messenger/messenger_api_message.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/messenger/messenger_api_message.c b/src/messenger/messenger_api_message.c
index 496c98dbf..ac63f16ca 100644
--- a/src/messenger/messenger_api_message.c
+++ b/src/messenger/messenger_api_message.c
@@ -23,6 +23,7 @@
* @brief messenger api: client and service implementation of GNUnet MESSENGER service
*/
+#include "platform.h"
#include "messenger_api_message.h"
struct GNUNET_MESSENGER_MessageSignature
@@ -219,6 +220,10 @@ get_message_body_kind_size (enum GNUNET_MESSENGER_MessageKind kind)
case GNUNET_MESSENGER_KIND_PRIVATE:
length += member_size(struct GNUNET_MESSENGER_Message, body.privacy.key);
break;
+ case GNUNET_MESSENGER_KIND_DELETE:
+ length += member_size(struct GNUNET_MESSENGER_Message, body.deletion.hash);
+ length += member_size(struct GNUNET_MESSENGER_Message, body.deletion.delay);
+ break;
default:
break;
}
@@ -255,16 +260,16 @@ get_message_body_size (enum GNUNET_MESSENGER_MessageKind kind,
switch (kind)
{
case GNUNET_MESSENGER_KIND_INFO:
- length += GNUNET_IDENTITY_key_get_length(&(body->info.host_key));
+ length += GNUNET_IDENTITY_public_key_get_length(&(body->info.host_key));
break;
case GNUNET_MESSENGER_KIND_JOIN:
- length += GNUNET_IDENTITY_key_get_length(&(body->join.key));
+ length += GNUNET_IDENTITY_public_key_get_length(&(body->join.key));
break;
case GNUNET_MESSENGER_KIND_NAME:
length += (body->name.name ? strlen (body->name.name) : 0);
break;
case GNUNET_MESSENGER_KIND_KEY:
- length += GNUNET_IDENTITY_key_get_length(&(body->key.key));
+ length += GNUNET_IDENTITY_public_key_get_length(&(body->key.key));
break;
case GNUNET_MESSENGER_KIND_TEXT:
length += strlen (body->text.text);
@@ -368,7 +373,7 @@ calc_padded_length (uint16_t length)
} while (0)
#define encode_step_key(dst, offset, src, length) do { \
- ssize_t result = GNUNET_IDENTITY_write_key_to_buffer( \
+ ssize_t result = GNUNET_IDENTITY_write_public_key_to_buffer( \
src, dst + offset, length - offset \
); \
if (result < 0) \
@@ -445,6 +450,10 @@ encode_message_body (enum GNUNET_MESSENGER_MessageKind kind,
encode_step(buffer, offset, &(body->privacy.key));
encode_step_ext(buffer, offset, body->privacy.data, min(length - offset, body->privacy.length));
break;
+ case GNUNET_MESSENGER_KIND_DELETE:
+ encode_step(buffer, offset, &(body->deletion.hash));
+ encode_step(buffer, offset, &(body->deletion.delay));
+ break;
default:
break;
}
@@ -531,13 +540,15 @@ encode_short_message (const struct GNUNET_MESSENGER_ShortMessage *message,
} while (0)
#define decode_step_key(src, offset, dst, length) do { \
- ssize_t result = GNUNET_IDENTITY_read_key_from_buffer( \
- dst, src + offset, length - offset \
+ enum GNUNET_GenericReturnValue result; \
+ size_t read; \
+ result = GNUNET_IDENTITY_read_public_key_from_buffer( \
+ src + offset, length - offset, dst, &read \
); \
- if (result < 0) \
+ if (GNUNET_SYSERR == result) \
GNUNET_break(0); \
else \
- offset += result; \
+ offset += read; \
} while (0)
static uint16_t
@@ -616,6 +627,10 @@ decode_message_body (enum GNUNET_MESSENGER_MessageKind *kind,
body->privacy.length = (length - offset);
decode_step_malloc(buffer, offset, body->privacy.data, length - offset, 0);
break;
+ case GNUNET_MESSENGER_KIND_DELETE:
+ decode_step(buffer, offset, &(body->deletion.hash));
+ decode_step(buffer, offset, &(body->deletion.delay));
+ break;
default:
*kind = GNUNET_MESSENGER_KIND_UNKNOWN;
break;