aboutsummaryrefslogtreecommitdiff
path: root/src/messenger/gnunet-service-messenger_message_kind.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/messenger/gnunet-service-messenger_message_kind.c')
-rw-r--r--src/messenger/gnunet-service-messenger_message_kind.c241
1 files changed, 0 insertions, 241 deletions
diff --git a/src/messenger/gnunet-service-messenger_message_kind.c b/src/messenger/gnunet-service-messenger_message_kind.c
deleted file mode 100644
index 2449b9230..000000000
--- a/src/messenger/gnunet-service-messenger_message_kind.c
+++ /dev/null
@@ -1,241 +0,0 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2020--2021 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
20/**
21 * @author Tobias Frisch
22 * @file src/messenger/gnunet-service-messenger_message_kind.c
23 * @brief GNUnet MESSENGER service
24 */
25
26#include "gnunet-service-messenger_message_kind.h"
27
28#include "messenger_api_util.h"
29
30struct GNUNET_MESSENGER_Message*
31create_message_info (const struct GNUNET_MESSENGER_Ego *ego)
32{
33 if (!ego)
34 return NULL;
35
36 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_INFO);
37
38 if (!message)
39 return NULL;
40
41 GNUNET_memcpy(&(message->body.info.host_key), &(ego->pub), sizeof(ego->pub));
42
43 message->body.info.messenger_version = GNUNET_MESSENGER_VERSION;
44
45 return message;
46}
47
48struct GNUNET_MESSENGER_Message*
49create_message_join (const struct GNUNET_MESSENGER_Ego *ego)
50{
51 if (!ego)
52 return NULL;
53
54 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_JOIN);
55
56 if (!message)
57 return NULL;
58
59 GNUNET_memcpy(&(message->body.join.key), &(ego->pub), sizeof(ego->pub));
60
61 return message;
62}
63
64struct GNUNET_MESSENGER_Message*
65create_message_leave ()
66{
67 return create_message (GNUNET_MESSENGER_KIND_LEAVE);
68}
69
70struct GNUNET_MESSENGER_Message*
71create_message_name (const char *name)
72{
73 if (!name)
74 return NULL;
75
76 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_NAME);
77
78 if (!message)
79 return NULL;
80
81 message->body.name.name = GNUNET_strdup(name);
82 return message;
83}
84
85struct GNUNET_MESSENGER_Message*
86create_message_key (const struct GNUNET_IDENTITY_PrivateKey *key)
87{
88 if (!key)
89 return NULL;
90
91 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_KEY);
92
93 if (!message)
94 return NULL;
95
96 GNUNET_IDENTITY_key_get_public (key, &(message->body.key.key));
97 return message;
98}
99
100struct GNUNET_MESSENGER_Message*
101create_message_peer (const struct GNUNET_MESSENGER_Service *service)
102{
103 if (!service)
104 return NULL;
105
106 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_PEER);
107
108 if (!message)
109 return NULL;
110
111 if (GNUNET_OK == get_service_peer_identity (service, &(message->body.peer.peer)))
112 return message;
113 else
114 {
115 destroy_message (message);
116 return NULL;
117 }
118}
119
120struct GNUNET_MESSENGER_Message*
121create_message_id (const struct GNUNET_ShortHashCode *unique_id)
122{
123 if (!unique_id)
124 return NULL;
125
126 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_ID);
127
128 if (!message)
129 return NULL;
130
131 GNUNET_memcpy(&(message->body.id.id), unique_id, sizeof(struct GNUNET_ShortHashCode));
132
133 return message;
134}
135
136struct GNUNET_MESSENGER_Message*
137create_message_miss (const struct GNUNET_PeerIdentity *peer)
138{
139 if (!peer)
140 return NULL;
141
142 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_MISS);
143
144 if (!message)
145 {
146 return NULL;
147 }
148
149 GNUNET_memcpy(&(message->body.miss.peer), peer, sizeof(struct GNUNET_PeerIdentity));
150
151 return message;
152}
153
154struct GNUNET_MESSENGER_Message*
155create_message_merge (const struct GNUNET_HashCode *previous)
156{
157 if (!previous)
158 return NULL;
159
160 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_MERGE);
161
162 if (!message)
163 return NULL;
164
165 GNUNET_memcpy(&(message->body.merge.previous), previous, sizeof(struct GNUNET_HashCode));
166
167 return message;
168}
169
170struct GNUNET_MESSENGER_Message*
171create_message_request (const struct GNUNET_HashCode *hash)
172{
173 if (!hash)
174 return NULL;
175
176 struct GNUNET_HashCode zero;
177 memset (&zero, 0, sizeof(zero));
178
179 if (0 == GNUNET_CRYPTO_hash_cmp (hash, &zero))
180 return NULL;
181
182 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_REQUEST);
183
184 if (!message)
185 return NULL;
186
187 GNUNET_memcpy(&(message->body.request.hash), hash, sizeof(struct GNUNET_HashCode));
188
189 return message;
190}
191
192struct GNUNET_MESSENGER_Message*
193create_message_invite (const struct GNUNET_PeerIdentity *door,
194 const struct GNUNET_HashCode *key)
195{
196 if ((!door) || (!key))
197 return NULL;
198
199 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_INVITE);
200
201 if (!message)
202 return NULL;
203
204 GNUNET_memcpy(&(message->body.invite.door), door, sizeof(struct GNUNET_PeerIdentity));
205 GNUNET_memcpy(&(message->body.invite.key), key, sizeof(struct GNUNET_HashCode));
206
207 return message;
208}
209
210struct GNUNET_MESSENGER_Message*
211create_message_text (const char *text)
212{
213 if (!text)
214 return NULL;
215
216 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_TEXT);
217
218 if (!message)
219 return NULL;
220
221 message->body.text.text = GNUNET_strdup(text);
222 return message;
223}
224
225struct GNUNET_MESSENGER_Message*
226create_message_delete (const struct GNUNET_HashCode *hash,
227 const struct GNUNET_TIME_Relative delay)
228{
229 if (!hash)
230 return NULL;
231
232 struct GNUNET_MESSENGER_Message *message = create_message (GNUNET_MESSENGER_KIND_DELETE);
233
234 if (!message)
235 return NULL;
236
237 GNUNET_memcpy(&(message->body.deletion.hash), hash, sizeof(struct GNUNET_HashCode));
238 message->body.deletion.delay = GNUNET_TIME_relative_hton (delay);
239
240 return message;
241}