From: Matthias Wachs Date: Wed, 6 Apr 2011 11:59:48 +0000 (+0000) Subject: (no commit message) X-Git-Tag: initial-import-from-subversion-38251~18762 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1855369609fd355f9bfe7de1d7a013fa256b3281;p=oweals%2Fgnunet.git --- diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index 50d149966..cb029a021 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c @@ -6242,11 +6242,15 @@ static int ats_solve_problem (int max_it, int max_dur , double D, double U, doub { if (VERBOSE_ATS) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "[%i][%i] `%s' %s %s %f\n", c, t->col_index, GNUNET_h2s(&peers[c].peer.hashPubKey), t->plugin->short_name, glp_get_col_name(prob,t->col_index), bw); if (check ==GNUNET_YES) + { + glp_write_sol(prob, "invalid_solution.mlp"); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Invalid solution, check invalid_solution.mlp"); + GNUNET_STATISTICS_update (stats, "ATS invalid solutions", 1, GNUNET_NO); error = GNUNET_YES; + } if (check ==GNUNET_NO) check = GNUNET_YES; } - GNUNET_assert (error != GNUNET_YES); t = t->next; } } diff --git a/src/transport/test_transport_ats.c b/src/transport/test_transport_ats.c index fa2bb407b..ac10ba1c8 100644 --- a/src/transport/test_transport_ats.c +++ b/src/transport/test_transport_ats.c @@ -26,7 +26,7 @@ #include "gnunet_scheduler_lib.h" #include "gauger.h" -#define VERBOSE GNUNET_YES +#define VERBOSE GNUNET_NO #define NUM_PEERS 11 #define MEASUREMENTS 5 @@ -70,6 +70,7 @@ struct GNUNET_STATISTICS_GetHandle * s_time; struct GNUNET_STATISTICS_GetHandle * s_peers; struct GNUNET_STATISTICS_GetHandle * s_mechs; struct GNUNET_STATISTICS_GetHandle * s_duration; +struct GNUNET_STATISTICS_GetHandle * s_invalid; /** * Check whether peers successfully shut down. @@ -136,7 +137,6 @@ static void shutdown_peers() s_duration = NULL; } - GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &shutdown_callback, NULL); } @@ -180,6 +180,20 @@ int stats_cb (void *cls, uint64_t value, int is_persistent) { + + if (0 == strcmp (name,"ATS invalid solutions")) + { + if (stats_task != GNUNET_SCHEDULER_NO_TASK) + { + GNUNET_SCHEDULER_cancel(stats_task); + stats_task = GNUNET_SCHEDULER_NO_TASK; + } + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"MLP produced invalid %llu result(s)!\n", value); + shutdown_peers(); + return GNUNET_SYSERR; + } + + if (0 == strcmp (name,"ATS solution")) { s_solution = NULL; @@ -235,6 +249,7 @@ int stats_cb (void *cls, fprintf(stderr, ".."); results[r_index].timestamp = value; + return GNUNET_SYSERR; } //GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "[%i] ATS solution: %s %llu \n", r_index, name, value); } @@ -280,6 +295,8 @@ stats_get_task (void *cls, s_duration = GNUNET_STATISTICS_get (stats, "transport","ATS duration", TIMEOUT, NULL, &stats_cb, NULL); s_peers = GNUNET_STATISTICS_get (stats, "transport", "ATS peers", TIMEOUT, NULL, &stats_cb, NULL); s_mechs = GNUNET_STATISTICS_get (stats, "transport", "ATS mechanisms", TIMEOUT, NULL, &stats_cb, NULL); + s_mechs = GNUNET_STATISTICS_get (stats, "transport", "ATS invalid solutions", TIMEOUT, NULL, &stats_cb, NULL); + stats_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 250), &stats_get_task, NULL); } @@ -376,7 +393,7 @@ daemon_start_cb (void *cls, { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Too many peers failed, ending test!\n"); - GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &shutdown_callback, NULL); + shutdown_peers(); ok = 1; } } @@ -435,6 +452,7 @@ main (int argc, char *argv[]) "WARNING", #endif NULL); + GNUNET_DISK_directory_remove ("/tmp/test-gnunet-testing"); peers = NUM_PEERS; if (argc >= 2)