aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2014-03-13 15:01:43 +0000
committerBart Polot <bart@net.in.tum.de>2014-03-13 15:01:43 +0000
commit220cf75b15b4877944119762549a8e1f45dc88e0 (patch)
tree898eba786e939a35d1a1c3eb7be280809ac8b29c /src
parent19b2aa3faf0205fd880b0ce0d3a0988b9ae7ee59 (diff)
downloadgnunet-220cf75b15b4877944119762549a8e1f45dc88e0.tar.gz
gnunet-220cf75b15b4877944119762549a8e1f45dc88e0.zip
- use pointers in struct itself
Diffstat (limited to 'src')
-rw-r--r--src/mesh/mesh_profiler.c60
1 files changed, 35 insertions, 25 deletions
diff --git a/src/mesh/mesh_profiler.c b/src/mesh/mesh_profiler.c
index 679c5621f..b42c1812e 100644
--- a/src/mesh/mesh_profiler.c
+++ b/src/mesh/mesh_profiler.c
@@ -87,7 +87,8 @@ struct MeshPeer
87 */ 87 */
88 int data_received; 88 int data_received;
89 89
90 unsigned int dest; 90 struct MeshPeer *dest;
91 struct MeshPeer *incoming;
91 GNUNET_SCHEDULER_TaskIdentifier ping_task; 92 GNUNET_SCHEDULER_TaskIdentifier ping_task;
92}; 93};
93 94
@@ -405,6 +406,30 @@ data_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
405 406
406 407
407/** 408/**
409 * @brief Send data to destination
410 *
411 * @param cls Closure (peer).
412 * @param tc Task context.
413 */
414static void
415ping (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
416{
417 struct MeshPeer *peer = (struct MeshPeer *) cls;
418
419 peer->ping_task = GNUNET_SCHEDULER_NO_TASK;
420 if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
421 return;
422
423 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u -> %u\n",
424 get_index (peer), get_index (peer->dest));
425
426 GNUNET_MESH_notify_transmit_ready (peer->ch, GNUNET_NO,
427 GNUNET_TIME_UNIT_FOREVER_REL,
428 size_payload, &tmt_rdy, peer);
429}
430
431
432/**
408 * Transmit ready callback 433 * Transmit ready callback
409 * 434 *
410 * @param cls Closure (peer). 435 * @param cls Closure (peer).
@@ -451,6 +476,9 @@ tmt_rdy (void *cls, size_t size, void *buf)
451 } 476 }
452 } 477 }
453 478
479 peers->ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd (60 * 1000),
480 &ping, peer);
481
454 return size_payload; 482 return size_payload;
455} 483}
456 484
@@ -572,25 +600,6 @@ channel_cleaner (void *cls, const struct GNUNET_MESH_Channel *channel,
572 600
573 601
574/** 602/**
575 * @brief Send data to destination
576 *
577 * @param cls Closure (peer).
578 * @param tc Task context.
579 */
580static void
581ping (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
582{
583 struct MeshPeer *peer = (struct MeshPeer *) cls;
584 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u -> %u\n",
585 get_index (peer), peer->dest);
586
587 GNUNET_MESH_notify_transmit_ready (peer->ch, GNUNET_NO,
588 GNUNET_TIME_UNIT_FOREVER_REL,
589 size_payload, &tmt_rdy, (void *) 1L);
590}
591
592
593/**
594 * START THE TESTCASE ITSELF, AS WE ARE CONNECTED TO THE MESH SERVICES. 603 * START THE TESTCASE ITSELF, AS WE ARE CONNECTED TO THE MESH SERVICES.
595 * 604 *
596 * Testcase continues when the root receives confirmation of connected peers, 605 * Testcase continues when the root receives confirmation of connected peers,
@@ -619,13 +628,14 @@ do_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
619 flags = GNUNET_MESH_OPTION_DEFAULT; 628 flags = GNUNET_MESH_OPTION_DEFAULT;
620 for (i = 0; i < TOTAL_PEERS; i++) 629 for (i = 0; i < TOTAL_PEERS; i++)
621 { 630 {
622 peers[i].dest = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 631 unsigned int r;
623 TOTAL_PEERS); 632 r = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, TOTAL_PEERS);
633 peers[i].dest = &peers[r];
624 peers[i].ch = GNUNET_MESH_channel_create (peers[i].mesh, NULL, 634 peers[i].ch = GNUNET_MESH_channel_create (peers[i].mesh, NULL,
625 &peers[peers[i].dest].id, 635 &peers[i].dest->id,
626 1, flags); 636 1, flags);
627 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u => %u\n", i, peers[i].dest); 637 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u => %u\n", i, r);
628 peers[i].ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd(2000), 638 peers[i].ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd (2000),
629 &ping, &peers[i]); 639 &ping, &peers[i]);
630 } 640 }
631} 641}