aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxrs <xrs@mail36.net>2017-06-22 21:53:06 +0200
committerxrs <xrs@mail36.net>2017-06-22 21:53:06 +0200
commitebc75d1fb3b115c25a34c9a205af3f3c83279758 (patch)
tree06fef090b22efe228c827a8e74d6534f93dcb519 /src
parentb8c0a4837377e4953b05a7df1b6ab6ec31c704a9 (diff)
downloadgnunet-ebc75d1fb3b115c25a34c9a205af3f3c83279758.tar.gz
gnunet-ebc75d1fb3b115c25a34c9a205af3f3c83279758.zip
Update multicast test
Diffstat (limited to 'src')
-rw-r--r--src/multicast/Makefile.am2
-rw-r--r--src/multicast/gnunet-service-multicast.c9
-rw-r--r--src/multicast/test_multicast.conf45
-rw-r--r--src/multicast/test_multicast_multipeer.c93
4 files changed, 106 insertions, 43 deletions
diff --git a/src/multicast/Makefile.am b/src/multicast/Makefile.am
index 8a754d3db..a4054f5f6 100644
--- a/src/multicast/Makefile.am
+++ b/src/multicast/Makefile.am
@@ -51,7 +51,7 @@ gnunet_service_multicast_LDADD = \
51 $(GN_LIBINTL) 51 $(GN_LIBINTL)
52 52
53check_PROGRAMS = \ 53check_PROGRAMS = \
54 test_multicast_multipeer 54 test_multicast_multipeer
55# test_multicast 55# test_multicast
56# test_multicast_2peers 56# test_multicast_2peers
57 57
diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c
index 9683efcff..39623e7b1 100644
--- a/src/multicast/gnunet-service-multicast.c
+++ b/src/multicast/gnunet-service-multicast.c
@@ -1504,13 +1504,12 @@ handle_client_member_join (void *cls,
1504 cl->client = client; 1504 cl->client = client;
1505 GNUNET_CONTAINER_DLL_insert (grp->clients_head, grp->clients_tail, cl); 1505 GNUNET_CONTAINER_DLL_insert (grp->clients_head, grp->clients_tail, cl);
1506 1506
1507 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1508 "%p Client connected to group %s..\n",
1509 mem, GNUNET_h2s (&grp->pub_key_hash));
1510 char *str = GNUNET_CRYPTO_ecdsa_public_key_to_string (&mem->pub_key); 1507 char *str = GNUNET_CRYPTO_ecdsa_public_key_to_string (&mem->pub_key);
1511 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1508 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1512 "%p ..as member %s (%s).\n", 1509 "Client connected to group %s as member %s (%s).\n",
1513 mem, GNUNET_h2s (&mem->pub_key_hash), str); 1510 GNUNET_h2s (&grp->pub_key_hash),
1511 GNUNET_h2s (&mem->pub_key_hash),
1512 str);
1514 GNUNET_free (str); 1513 GNUNET_free (str);
1515 1514
1516 if (NULL != mem->join_dcsn) 1515 if (NULL != mem->join_dcsn)
diff --git a/src/multicast/test_multicast.conf b/src/multicast/test_multicast.conf
index 3081aeecc..3dc96adbb 100644
--- a/src/multicast/test_multicast.conf
+++ b/src/multicast/test_multicast.conf
@@ -1,12 +1,55 @@
1[testbed] 1[testbed]
2HOSTNAME = localhost 2HOSTNAME = localhost
3#OVERLAY_TOPOLOGY = LINE
3 4
4[arm] 5[arm]
5GLOBAL_POSTFIX=-L ERROR 6GLOBAL_POSTFIX=-L ERROR
6 7
8[hostlist]
9SERVERS = http://localhost:8080/
10
7[multicast] 11[multicast]
8#PREFIX = xterm -T peer -e gdb --args 12#PREFIX = tmux split-window -v gdb -x ./cmd.gdb --args
9UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-multicast.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-multicast.sock
10 14
11[vpn] 15[vpn]
12AUTOSTART = NO 16AUTOSTART = NO
17
18[peerinfo]
19# Do not use shipped gnunet HELLOs
20USE_INCLUDED_HELLOS = NO
21
22# Option to disable all disk IO; only useful for testbed runs
23# (large-scale experiments); disables persistence of HELLOs!
24NO_IO = YES
25
26[nat]
27ENABLE_UPNP = NO
28
29[fs]
30FORCESTART = NO
31AUTOSTART = NO
32
33[vpn]
34FORCESTART = NO
35AUTOSTART = NO
36
37[revocation]
38FORCESTART = NO
39AUTOSTART = NO
40
41[gns]
42FORCESTART = NO
43AUTOSTART = NO
44
45[namestore]
46FORCESTART = NO
47AUTOSTART = NO
48
49[namecache]
50FORCESTART = NO
51AUTOSTART = NO
52
53[topology]
54FORCESTART = NO
55AUTOSTART = NO
diff --git a/src/multicast/test_multicast_multipeer.c b/src/multicast/test_multicast_multipeer.c
index c2078abf9..5c3664f35 100644
--- a/src/multicast/test_multicast_multipeer.c
+++ b/src/multicast/test_multicast_multipeer.c
@@ -33,14 +33,15 @@
33#include "gnunet_testbed_service.h" 33#include "gnunet_testbed_service.h"
34#include "gnunet_multicast_service.h" 34#include "gnunet_multicast_service.h"
35 35
36#define NUM_PEERS 3 36#define NUM_PEERS 2
37 37
38struct multicast_peer 38struct multicast_peer
39{ 39{
40 int peer; /* peer number */ 40 int peer; /* peer number */
41 const struct GNUNET_PeerIdentity *id;
41 struct GNUNET_TESTBED_Operation *op; /* not yet in use */ 42 struct GNUNET_TESTBED_Operation *op; /* not yet in use */
42 struct GNUNET_TESTBED_Operation *pi_op; /* not yet in use */ 43 struct GNUNET_TESTBED_Operation *pi_op; /* not yet in use */
43 uint8_t test_ok; 44 int test_ok;
44}; 45};
45 46
46static void service_connect (void *cls, 47static void service_connect (void *cls,
@@ -54,7 +55,6 @@ static struct GNUNET_TESTBED_Peer **peers;
54// FIXME: refactor 55// FIXME: refactor
55static struct GNUNET_TESTBED_Operation *op[NUM_PEERS]; 56static struct GNUNET_TESTBED_Operation *op[NUM_PEERS];
56static struct GNUNET_TESTBED_Operation *pi_op[NUM_PEERS]; 57static struct GNUNET_TESTBED_Operation *pi_op[NUM_PEERS];
57static const struct GNUNET_PeerIdentity *peer_id[NUM_PEERS];
58 58
59static struct GNUNET_MULTICAST_Origin *origin; 59static struct GNUNET_MULTICAST_Origin *origin;
60static struct GNUNET_MULTICAST_Member *member[NUM_PEERS]; /* first element always empty */ 60static struct GNUNET_MULTICAST_Member *member[NUM_PEERS]; /* first element always empty */
@@ -80,16 +80,6 @@ static int result;
80static void 80static void
81shutdown_task (void *cls) 81shutdown_task (void *cls)
82{ 82{
83 if (NULL != mc_peers)
84 {
85 for (int i=0; i < NUM_PEERS; i++)
86 {
87 GNUNET_free (mc_peers[i]);
88 mc_peers[i] = NULL;
89 }
90 GNUNET_free (mc_peers);
91 }
92
93 for (int i=0;i<NUM_PEERS;i++) 83 for (int i=0;i<NUM_PEERS;i++)
94 { 84 {
95 if (NULL != op[i]) 85 if (NULL != op[i])
@@ -104,6 +94,16 @@ shutdown_task (void *cls)
104 } 94 }
105 } 95 }
106 96
97 if (NULL != mc_peers)
98 {
99 for (int i=0; i < NUM_PEERS; i++)
100 {
101 GNUNET_free (mc_peers[i]);
102 mc_peers[i] = NULL;
103 }
104 GNUNET_free (mc_peers);
105 }
106
107 if (NULL != timeout_tid) 107 if (NULL != timeout_tid)
108 { 108 {
109 GNUNET_SCHEDULER_cancel (timeout_tid); 109 GNUNET_SCHEDULER_cancel (timeout_tid);
@@ -130,8 +130,9 @@ member_join_request (void *cls,
130{ 130{
131 struct multicast_peer *mc_peer = (struct multicast_peer*)cls; 131 struct multicast_peer *mc_peer = (struct multicast_peer*)cls;
132 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 132 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
133 "Peer #%u sent a join request.\n", mc_peer->peer); 133 "Peer #%u (%s) sent a join request.\n",
134 134 mc_peer->peer,
135 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
135} 136}
136 137
137 138
@@ -165,7 +166,10 @@ member_join_decision (void *cls,
165 struct GNUNET_MULTICAST_MemberTransmitHandle *req; 166 struct GNUNET_MULTICAST_MemberTransmitHandle *req;
166 167
167 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 168 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
168 "Peer #%u received a decision from origin: %s\n", mc_peer->peer, (GNUNET_YES == is_admitted)?"accepted":"rejected"); 169 "Peer #%u (%s) received a decision from origin: %s\n",
170 mc_peer->peer,
171 GNUNET_i2s (mc_peers[mc_peer->peer]->id),
172 (GNUNET_YES == is_admitted)?"accepted":"rejected");
169 173
170 if (GNUNET_YES == is_admitted) 174 if (GNUNET_YES == is_admitted)
171 { 175 {
@@ -203,29 +207,30 @@ member_message (void *cls,
203 if (0 != strncmp ("pong", (char *)&msg[1], 4)) 207 if (0 != strncmp ("pong", (char *)&msg[1], 4))
204 { 208 {
205 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 209 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
206 "peer #%i did not receive pong\n", 210 "peer #%i (%s) did not receive pong\n",
207 mc_peer->peer); 211 mc_peer->peer,
212 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
208 213
209 result = GNUNET_SYSERR; 214 result = GNUNET_SYSERR;
210 GNUNET_SCHEDULER_shutdown (); 215 GNUNET_SCHEDULER_shutdown ();
211 } 216 }
212 217
213 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 218 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
214 "peer #%i receives: %s\n", 219 "peer #%i (%s) receives: %s\n",
215 mc_peer->peer, 220 mc_peer->peer,
221 GNUNET_i2s (mc_peers[mc_peer->peer]->id),
216 (char *)&msg[1]); 222 (char *)&msg[1]);
217 223
218 mc_peer->test_ok = GNUNET_OK; 224 mc_peer->test_ok = GNUNET_OK;
219 225
220 // FIXME: ugly test function 226 // FIXME: ugly test function
221 /* 227 // (we start with 1 because 0 is origin)
222 for (int i=1; i<NUM_PEERS; i++) 228 for (int i=1; i<NUM_PEERS; i++)
223 if (!mc_peers[i]->test_ok) 229 if (GNUNET_NO == mc_peers[i]->test_ok)
224 return; 230 return;
225 231
226 result = GNUNET_YES; 232 result = GNUNET_YES;
227 GNUNET_SCHEDULER_shutdown(); 233 GNUNET_SCHEDULER_shutdown();
228 */
229} 234}
230 235
231 236
@@ -345,7 +350,9 @@ multicast_da (void *cls,
345 else 350 else
346 { 351 {
347 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 352 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
348 "peer #%u parting from multicast group\n", mc_peer->peer); 353 "peer #%u (%s) parting from multicast group\n",
354 mc_peer->peer,
355 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
349 356
350 GNUNET_MULTICAST_member_part (member[mc_peer->peer], NULL, cls); 357 GNUNET_MULTICAST_member_part (member[mc_peer->peer], NULL, cls);
351 } 358 }
@@ -381,9 +388,12 @@ multicast_ca (void *cls,
381 // Get members keys 388 // Get members keys
382 member_pub_key[mc_peer->peer] = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey); 389 member_pub_key[mc_peer->peer] = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
383 member_key[mc_peer->peer] = GNUNET_CRYPTO_ecdsa_key_create (); 390 member_key[mc_peer->peer] = GNUNET_CRYPTO_ecdsa_key_create ();
384 GNUNET_CRYPTO_ecdsa_key_get_public (member_key[mc_peer->peer], member_pub_key[mc_peer->peer]); 391 GNUNET_CRYPTO_ecdsa_key_get_public (member_key[mc_peer->peer],
392 member_pub_key[mc_peer->peer]);
385 393
386 sprintf(data, "Hi, I am peer #%u. Can I enter?", mc_peer->peer); 394 sprintf(data, "Hi, I am peer #%u (%s). Can I enter?",
395 mc_peer->peer,
396 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
387 uint8_t data_size = strlen (data) + 1; 397 uint8_t data_size = strlen (data) + 1;
388 join_msg = GNUNET_malloc (sizeof (join_msg) + data_size); 398 join_msg = GNUNET_malloc (sizeof (join_msg) + data_size);
389 join_msg->size = htons (sizeof (join_msg) + data_size); 399 join_msg->size = htons (sizeof (join_msg) + data_size);
@@ -391,12 +401,14 @@ multicast_ca (void *cls,
391 GNUNET_memcpy (&join_msg[1], data, data_size); 401 GNUNET_memcpy (&join_msg[1], data, data_size);
392 402
393 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 403 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
394 "Peer #%u tries to join multicast group\n", mc_peer->peer); 404 "Peer #%u (%s) tries to join multicast group\n",
405 mc_peer->peer,
406 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
395 407
396 return GNUNET_MULTICAST_member_join (cfg, 408 return GNUNET_MULTICAST_member_join (cfg,
397 group_pub_key, 409 group_pub_key,
398 member_key[mc_peer->peer], 410 member_key[mc_peer->peer],
399 peer_id[0], 411 mc_peers[0]->id,
400 0, 412 0,
401 NULL, 413 NULL,
402 join_msg, /* join message */ 414 join_msg, /* join message */
@@ -424,13 +436,17 @@ peer_information_cb (void *cls,
424 GNUNET_SCHEDULER_shutdown (); 436 GNUNET_SCHEDULER_shutdown ();
425 } 437 }
426 438
427 peer_id[mc_peer->peer] = pinfo->result.id; 439 mc_peers[mc_peer->peer]->id = pinfo->result.id;
428 440
429 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 441 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
430 "Got peer information of %s (%s)\n", (0==mc_peer->peer)?"origin":"member" ,GNUNET_i2s(pinfo->result.id)); 442 "Got peer information of %s (%s)\n",
443 (0 == mc_peer->peer)? "origin" : "member",
444 GNUNET_i2s (pinfo->result.id));
431 445
432 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 446 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
433 "Create peer #%u\n", mc_peer->peer); 447 "Create peer #%u (%s)\n",
448 mc_peer->peer,
449 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
434 450
435 if (0 != mc_peer->peer) 451 if (0 != mc_peer->peer)
436 { 452 {
@@ -461,13 +477,18 @@ service_connect (void *cls,
461 if (NULL == ca_result) 477 if (NULL == ca_result)
462 { 478 {
463 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 479 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
464 "Connection adapter not created for peer #%u\n", mc_peer->peer); 480 "Connection adapter not created for peer #%u (%s)\n",
481 mc_peer->peer,
482 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
483
465 result = GNUNET_SYSERR; 484 result = GNUNET_SYSERR;
466 GNUNET_SCHEDULER_shutdown(); 485 GNUNET_SCHEDULER_shutdown();
467 } 486 }
468 487
469 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 488 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
470 "Connected to multicast service of peer #%u\n", mc_peer->peer); 489 "Connected to multicast service of peer #%u (%s)\n",
490 mc_peer->peer,
491 GNUNET_i2s (mc_peers[mc_peer->peer]->id));
471 492
472 if (0 == mc_peer->peer) 493 if (0 == mc_peer->peer)
473 { 494 {
@@ -525,9 +546,6 @@ testbed_master (void *cls,
525 546
526 peers = p; 547 peers = p;
527 548
528 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
529 "Create origin peer\n");
530
531 mc_peers = GNUNET_new_array (NUM_PEERS, struct multicast_peer*); 549 mc_peers = GNUNET_new_array (NUM_PEERS, struct multicast_peer*);
532 550
533 // Create test contexts for members 551 // Create test contexts for members
@@ -538,6 +556,9 @@ testbed_master (void *cls,
538 mc_peers[i]->test_ok = GNUNET_NO; 556 mc_peers[i]->test_ok = GNUNET_NO;
539 } 557 }
540 558
559 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
560 "Create origin peer\n");
561
541 op[0] = GNUNET_TESTBED_service_connect (NULL, /* Closure for operation */ 562 op[0] = GNUNET_TESTBED_service_connect (NULL, /* Closure for operation */
542 peers[0], /* The peer whose service to connect to */ 563 peers[0], /* The peer whose service to connect to */
543 "multicast", /* The name of the service */ 564 "multicast", /* The name of the service */
@@ -553,7 +574,7 @@ testbed_master (void *cls,
553 GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); /* Schedule a new task on shutdown */ 574 GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); /* Schedule a new task on shutdown */
554 575
555 /* Schedule the shutdown task with a delay of a few Seconds */ 576 /* Schedule the shutdown task with a delay of a few Seconds */
556 timeout_tid = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 80), 577 timeout_tid = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 400),
557 &timeout_task, NULL); 578 &timeout_task, NULL);
558} 579}
559 580