diff options
author | Bart Polot <bart@net.in.tum.de> | 2014-03-13 15:01:43 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2014-03-13 15:01:43 +0000 |
commit | 220cf75b15b4877944119762549a8e1f45dc88e0 (patch) | |
tree | 898eba786e939a35d1a1c3eb7be280809ac8b29c /src | |
parent | 19b2aa3faf0205fd880b0ce0d3a0988b9ae7ee59 (diff) | |
download | gnunet-220cf75b15b4877944119762549a8e1f45dc88e0.tar.gz gnunet-220cf75b15b4877944119762549a8e1f45dc88e0.zip |
- use pointers in struct itself
Diffstat (limited to 'src')
-rw-r--r-- | src/mesh/mesh_profiler.c | 60 |
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 | */ | ||
414 | static void | ||
415 | ping (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 | */ | ||
580 | static void | ||
581 | ping (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 | } |