aboutsummaryrefslogtreecommitdiff
path: root/src/gnunet_chat_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gnunet_chat_message.c')
-rw-r--r--src/gnunet_chat_message.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gnunet_chat_message.c b/src/gnunet_chat_message.c
index bff8a52..7e47291 100644
--- a/src/gnunet_chat_message.c
+++ b/src/gnunet_chat_message.c
@@ -24,9 +24,12 @@
24 24
25#include "gnunet_chat_message.h" 25#include "gnunet_chat_message.h"
26 26
27#include "gnunet_chat_message_intern.c"
28
27struct GNUNET_CHAT_Message* 29struct GNUNET_CHAT_Message*
28message_create_from_msg (struct GNUNET_CHAT_Context *context, 30message_create_from_msg (struct GNUNET_CHAT_Context *context,
29 const struct GNUNET_HashCode *hash, 31 const struct GNUNET_HashCode *hash,
32 enum GNUNET_MESSENGER_MessageFlags flags,
30 const struct GNUNET_MESSENGER_Message *msg) 33 const struct GNUNET_MESSENGER_Message *msg)
31{ 34{
32 struct GNUNET_CHAT_Message *message = GNUNET_new(struct GNUNET_CHAT_Message); 35 struct GNUNET_CHAT_Message *message = GNUNET_new(struct GNUNET_CHAT_Message);
@@ -34,14 +37,22 @@ message_create_from_msg (struct GNUNET_CHAT_Context *context,
34 message->context = context; 37 message->context = context;
35 38
36 GNUNET_memcpy(&(message->hash), hash, sizeof(message->hash)); 39 GNUNET_memcpy(&(message->hash), hash, sizeof(message->hash));
40 message->flags = flags;
41
42 message->head = NULL;
43 message->tail = NULL;
37 44
38 message->msg = msg; 45 message->msg = msg;
39 46
47 link_message_parent(message);
48
40 return message; 49 return message;
41} 50}
42 51
43void 52void
44message_destroy (struct GNUNET_CHAT_Message* message) 53message_destroy (struct GNUNET_CHAT_Message* message)
45{ 54{
55 unlink_message_parent(message);
56 clear_message_children(message);
46 GNUNET_free(message); 57 GNUNET_free(message);
47} 58}