X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftestbed%2Fgnunet-testbed-profiler.c;h=3bddfac09e99318c5da4739641e89c565e594d66;hb=f4d040c0f0dd2fef3d73b1f4532c76219f760f75;hp=8e02a55f809895689a9fb033fd4af8f74bcb00a0;hpb=4b4446ff38e6737fbc432c129688371452222e33;p=oweals%2Fgnunet.git diff --git a/src/testbed/gnunet-testbed-profiler.c b/src/testbed/gnunet-testbed-profiler.c index 8e02a55f8..3bddfac09 100644 --- a/src/testbed/gnunet-testbed-profiler.c +++ b/src/testbed/gnunet-testbed-profiler.c @@ -26,6 +26,7 @@ #include "platform.h" #include "gnunet_common.h" +#include "gnunet_util_lib.h" #include "gnunet_testbed_service.h" #include "testbed_api_hosts.h" @@ -257,14 +258,14 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (NULL != reg_handle) GNUNET_TESTBED_cancel_registration (reg_handle); if (NULL != topology_op) - GNUNET_TESTBED_operation_cancel (topology_op); + GNUNET_TESTBED_operation_done (topology_op); for (nhost = 0; nhost < num_hosts; nhost++) if (NULL != hosts[nhost]) GNUNET_TESTBED_host_destroy (hosts[nhost]); GNUNET_free_non_null (hosts); while (NULL != (dll_op = dll_op_head)) { - GNUNET_TESTBED_operation_cancel (dll_op->op); + GNUNET_TESTBED_operation_done (dll_op->op); GNUNET_CONTAINER_DLL_remove (dll_op_head, dll_op_tail, dll_op); GNUNET_free (dll_op); } @@ -333,7 +334,7 @@ peer_churn_cb (void *cls, const char *emsg) num_peers, ((double) prof_time.rel_value) / 1000.00); fflush (stdout); result = GNUNET_OK; - if (0 == num_links) + if ((0 == num_links) && (topology == GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI)) { shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); return; @@ -357,6 +358,7 @@ peer_churn_cb (void *cls, const char *emsg) topology, GNUNET_TESTBED_TOPOLOGY_DISABLE_AUTO_RETRY, GNUNET_TESTBED_TOPOLOGY_OPTION_END); + num_links = num_peers * (num_peers - 1); break; default: GNUNET_assert (0); @@ -523,7 +525,7 @@ controller_event_cb (void *cls, } break; case STATE_PEERS_LINKING: - switch (event->type) + switch (event->type) { case GNUNET_TESTBED_ET_OPERATION_FINISHED: /* Control reaches here when a peer linking operation fails */ @@ -538,6 +540,7 @@ controller_event_cb (void *cls, print_overlay_links_summary (); GNUNET_SCHEDULER_cancel (abort_task); abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); + return; } } break; @@ -550,19 +553,17 @@ controller_event_cb (void *cls, printf ("."); fflush (stdout); established_links++; - if ((established_links + failed_links) == - (GNUNET_TESTBED_TOPOLOGY_CLIQUE == topology ? - num_peers * (num_peers -1) : num_links)) - { - print_overlay_links_summary (); - result = GNUNET_OK; - shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); - } } break; default: GNUNET_assert (0); } + if ((established_links + failed_links) == num_links) + { + print_overlay_links_summary (); + result = GNUNET_OK; + shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); + } break; default: GNUNET_assert (0); @@ -717,7 +718,7 @@ run (void *cls, char *const *args, const char *cfgfile, } for (nhost = 0; nhost < num_hosts; nhost++) { - if (GNUNET_YES != GNUNET_TESTBED_is_host_habitable (hosts[nhost])) + if (GNUNET_YES != GNUNET_TESTBED_is_host_habitable (hosts[nhost], config)) { fprintf (stderr, _("Host %s cannot start testbed\n"), GNUNET_TESTBED_host_get_hostname_ (hosts[nhost])); @@ -775,7 +776,7 @@ set_topology (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx, *val = GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI; return GNUNET_OK; } - FPRINTF (stderr, _("Only `CLIQUE' and `RANDOM' are permitted")); + FPRINTF (stderr, "%s", _("Only `CLIQUE' and `RANDOM' are permitted.\n")); return GNUNET_SYSERR; } @@ -802,7 +803,7 @@ main (int argc, char *const *argv) gettext_noop ("Try to acheive TOPOLOGY. This options takes either CLIQUE " "or RANDOM. For CLIQUE the parameter -n is ignored. The " "default is to acheive a random graph topology."), - GNUNET_YES, &GNUNET_GETOPT_set_string, &topology }, + GNUNET_YES, &set_topology, &topology }, GNUNET_GETOPT_OPTION_END }; int ret; @@ -816,6 +817,7 @@ main (int argc, char *const *argv) GNUNET_PROGRAM_run (argc, argv, "gnunet-testbed-profiler [OPTIONS] hosts-file", _("Profiler for testbed"), options, &run, NULL); + GNUNET_free ((void*) argv); if (GNUNET_OK != ret) return ret; if (GNUNET_OK != result)