aboutsummaryrefslogtreecommitdiff
path: root/src/multicast
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-03-13 18:32:03 +0100
committerChristian Grothoff <christian@grothoff.org>2017-03-13 18:32:03 +0100
commite7739331e20a0ec26febd6d4268323d3b0638341 (patch)
tree6c3e3455ae9b73e22a1fce5766b3e494f64c6cbf /src/multicast
parentfedee536d5e414b6d8a7bb8a7587d9d747dd5394 (diff)
downloadgnunet-e7739331e20a0ec26febd6d4268323d3b0638341.tar.gz
gnunet-e7739331e20a0ec26febd6d4268323d3b0638341.zip
fix leaks, note that APIs are deprecated (NTR instead of MQ style)
Diffstat (limited to 'src/multicast')
-rw-r--r--src/multicast/test_multicast_2peers.c70
1 files changed, 40 insertions, 30 deletions
diff --git a/src/multicast/test_multicast_2peers.c b/src/multicast/test_multicast_2peers.c
index 02e60a905..058533e50 100644
--- a/src/multicast/test_multicast_2peers.c
+++ b/src/multicast/test_multicast_2peers.c
@@ -20,7 +20,7 @@
20 20
21/** 21/**
22 * @file multicast/test_multicast_2peers.c 22 * @file multicast/test_multicast_2peers.c
23 * @brief Tests for the Multicast API with two peers doing the ping 23 * @brief Tests for the Multicast API with two peers doing the ping
24 * pong test. 24 * pong test.
25 * @author xrs 25 * @author xrs
26 */ 26 */
@@ -117,16 +117,18 @@ member_join_request (void *cls,
117 117
118} 118}
119 119
120int notify (void *cls, 120
121 size_t *data_size, 121static int
122 void *data) 122notify (void *cls,
123 size_t *data_size,
124 void *data)
123{ 125{
124 126
125 char text[] = "ping"; 127 char text[] = "ping";
126 *data_size = strlen(text)+1; 128 *data_size = strlen(text)+1;
127 GNUNET_memcpy(data, text, *data_size); 129 GNUNET_memcpy(data, text, *data_size);
128 130
129 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 131 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
130 "Member sents message to origin: %s\n", text); 132 "Member sents message to origin: %s\n", text);
131 133
132 return GNUNET_YES; 134 return GNUNET_YES;
@@ -141,25 +143,30 @@ member_join_decision (void *cls,
141 const struct GNUNET_PeerIdentity *relays, 143 const struct GNUNET_PeerIdentity *relays,
142 const struct GNUNET_MessageHeader *join_msg) 144 const struct GNUNET_MessageHeader *join_msg)
143{ 145{
144 struct GNUNET_MULTICAST_MemberTransmitHandle *req; 146 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
145 147 "Member received a decision from origin: %s\n",
146 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 148 (GNUNET_YES == is_admitted)
147 "Member received a decision from origin: %s\n", (GNUNET_YES == is_admitted)?"accepted":"rejected"); 149 ? "accepted"
148 150 : "rejected");
151
149 if (GNUNET_YES == is_admitted) 152 if (GNUNET_YES == is_admitted)
150 { 153 {
154 struct GNUNET_MULTICAST_MemberTransmitHandle *req;
155
156 // FIXME: move to MQ-style API!
151 req = GNUNET_MULTICAST_member_to_origin (member, 157 req = GNUNET_MULTICAST_member_to_origin (member,
152 0, 158 0,
153 notify, 159 &notify,
154 NULL); 160 NULL);
155 } 161 }
156} 162}
157 163
164
158static void 165static void
159member_message (void *cls, 166member_message (void *cls,
160 const struct GNUNET_MULTICAST_MessageHeader *msg) 167 const struct GNUNET_MULTICAST_MessageHeader *msg)
161{ 168{
162 if (0 != strncmp ("pong", (char *)&msg[1], 4)) 169 if (0 != strncmp ("pong", (char *)&msg[1], 4))
163 { 170 {
164 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "member did not receive pong\n"); 171 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "member did not receive pong\n");
165 result = GNUNET_SYSERR; 172 result = GNUNET_SYSERR;
@@ -184,19 +191,19 @@ origin_join_request (void *cls,
184 191
185 uint8_t data_size = ntohs (join_msg->size); 192 uint8_t data_size = ntohs (join_msg->size);
186 193
187 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 194 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
188 "origin got a join request...\n"); 195 "origin got a join request...\n");
189 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 196 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
190 "origin receives: '%s'\n", (char *)&join_msg[1]); 197 "origin receives: '%s'\n", (char *)&join_msg[1]);
191 198
192 char data[] = "Come in!"; 199 const char data[] = "Come in!";
193 data_size = strlen (data) + 1; 200 data_size = strlen (data) + 1;
194 join_resp = GNUNET_malloc (sizeof (join_resp) + data_size); 201 join_resp = GNUNET_malloc (sizeof (join_resp) + data_size);
195 join_resp->size = htons (sizeof (join_resp) + data_size); 202 join_resp->size = htons (sizeof (join_resp) + data_size);
196 join_resp->type = htons (123); 203 join_resp->type = htons (123);
197 GNUNET_memcpy (&join_resp[1], data, data_size); 204 GNUNET_memcpy (&join_resp[1], data, data_size);
198 205
199 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 206 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
200 "origin sends: '%s'\n", data); 207 "origin sends: '%s'\n", data);
201 208
202 GNUNET_MULTICAST_join_decision (jh, 209 GNUNET_MULTICAST_join_decision (jh,
@@ -204,22 +211,22 @@ origin_join_request (void *cls,
204 0, 211 0,
205 NULL, 212 NULL,
206 join_resp); 213 join_resp);
207 214 GNUNET_free (join_resp);
208 result = GNUNET_OK; 215 result = GNUNET_OK;
209} 216}
210 217
211int 218int
212origin_notify (void *cls, 219origin_notify (void *cls,
213 size_t *data_size, 220 size_t *data_size,
214 void *data) 221 void *data)
215{ 222{
216 char text[] = "pong"; 223 char text[] = "pong";
217 *data_size = strlen(text)+1; 224 *data_size = strlen(text)+1;
218 memcpy(data, text, *data_size); 225 memcpy(data, text, *data_size);
219 226
220 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin sends (to all): %s\n", text); 227 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin sends (to all): %s\n", text);
221 228
222 return GNUNET_YES; 229 return GNUNET_YES;
223} 230}
224 231
225 232
@@ -228,8 +235,8 @@ origin_request (void *cls,
228 const struct GNUNET_MULTICAST_RequestHeader *req) 235 const struct GNUNET_MULTICAST_RequestHeader *req)
229{ 236{
230 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin receives: %s\n", (char *)&req[1]); 237 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin receives: %s\n", (char *)&req[1]);
231 238
232 if (0 != strncmp ("ping", (char *)&req[1], 4)) 239 if (0 != strncmp ("ping", (char *)&req[1], 4))
233 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "origin didn't reveice a correct request"); 240 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "origin didn't reveice a correct request");
234 241
235 GNUNET_MULTICAST_origin_to_all (origin, 242 GNUNET_MULTICAST_origin_to_all (origin,
@@ -241,7 +248,7 @@ origin_request (void *cls,
241 248
242static void 249static void
243origin_message (void *cls, 250origin_message (void *cls,
244 const struct GNUNET_MULTICAST_MessageHeader *msg) 251 const struct GNUNET_MULTICAST_MessageHeader *msg)
245{ 252{
246 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin message msg\n"); 253 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin message msg\n");
247} 254}
@@ -255,7 +262,7 @@ service_connect1 (void *cls,
255{ 262{
256 member = ca_result; 263 member = ca_result;
257 264
258 if (NULL != member) 265 if (NULL != member)
259 { 266 {
260 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Connected to multicast service of member\n"); 267 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Connected to multicast service of member\n");
261 } 268 }
@@ -282,11 +289,12 @@ multicast_ca1 (void *cls,
282 const struct GNUNET_CONFIGURATION_Handle *cfg) 289 const struct GNUNET_CONFIGURATION_Handle *cfg)
283{ 290{
284 struct GNUNET_MessageHeader *join_msg; 291 struct GNUNET_MessageHeader *join_msg;
292 void *ret;
285 293
286 // Get members keys 294 // Get members keys
287 member_key = GNUNET_CRYPTO_ecdsa_key_create (); 295 member_key = GNUNET_CRYPTO_ecdsa_key_create ();
288 GNUNET_CRYPTO_ecdsa_key_get_public (member_key, &member_pub_key); 296 GNUNET_CRYPTO_ecdsa_key_get_public (member_key, &member_pub_key);
289 297
290 char data[] = "Hi, can I enter?"; 298 char data[] = "Hi, can I enter?";
291 uint8_t data_size = strlen (data) + 1; 299 uint8_t data_size = strlen (data) + 1;
292 join_msg = GNUNET_malloc (sizeof (join_msg) + data_size); 300 join_msg = GNUNET_malloc (sizeof (join_msg) + data_size);
@@ -297,7 +305,7 @@ multicast_ca1 (void *cls,
297 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 305 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
298 "Members tries to join multicast group\n"); 306 "Members tries to join multicast group\n");
299 307
300 return GNUNET_MULTICAST_member_join (cfg, 308 ret = GNUNET_MULTICAST_member_join (cfg,
301 &group_pub_key, 309 &group_pub_key,
302 member_key, 310 member_key,
303 peer_id[0], 311 peer_id[0],
@@ -310,6 +318,8 @@ multicast_ca1 (void *cls,
310 NULL, /* no test for member_replay_msg */ 318 NULL, /* no test for member_replay_msg */
311 member_message, 319 member_message,
312 NULL); 320 NULL);
321 GNUNET_free (join_msg);
322 return ret;
313} 323}
314 324
315 325
@@ -321,7 +331,7 @@ peer_information_cb (void *cls,
321{ 331{
322 int i = (int) (long) cls; 332 int i = (int) (long) cls;
323 333
324 if (NULL == pinfo) 334 if (NULL == pinfo)
325 { 335 {
326 result = GNUNET_SYSERR; 336 result = GNUNET_SYSERR;
327 GNUNET_SCHEDULER_shutdown (); 337 GNUNET_SCHEDULER_shutdown ();
@@ -335,7 +345,7 @@ peer_information_cb (void *cls,
335 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 345 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
336 "Create member peer\n"); 346 "Create member peer\n");
337 347
338 if (0 == i) 348 if (0 == i)
339 { 349 {
340 /* connect to multicast service of member */ 350 /* connect to multicast service of member */
341 op1 = GNUNET_TESTBED_service_connect (NULL, /* Closure for operation */ 351 op1 = GNUNET_TESTBED_service_connect (NULL, /* Closure for operation */