/** * Function called when the service shuts down. Unloads our plugins * and cancels pending validations. * * @param cls closure, unused * @param tc task context (unused) */ static void shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { GST_neighbours_stop (); GST_validation_stop (); GST_plugins_unload (); GNUNET_ATS_scheduling_done (GST_ats); GST_ats = NULL; GST_clients_stop (); GST_blacklist_stop (); GST_hello_stop (); if (GST_peerinfo != NULL) { GNUNET_PEERINFO_disconnect (GST_peerinfo); GST_peerinfo = NULL; } if (GST_stats != NULL) { GNUNET_STATISTICS_destroy (GST_stats, GNUNET_NO); GST_stats = NULL; } if (GST_my_private_key != NULL) { GNUNET_CRYPTO_rsa_key_free (GST_my_private_key); GST_my_private_key = NULL; } }
static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n"); if (die_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (die_task); die_task = GNUNET_SCHEDULER_NO_TASK; } if (NULL != sched_ats) { GNUNET_ATS_scheduling_done (sched_ats); sched_ats = NULL; } GNUNET_STATISTICS_watch_cancel (stats, "ats", "# addresses", &stat_cb, NULL); if (NULL != stats) { GNUNET_STATISTICS_destroy (stats, GNUNET_NO); stats = NULL; } ret = 0; }
static void end () { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n"); if (die_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (die_task); die_task = GNUNET_SCHEDULER_NO_TASK; } if (NULL != atsh) GNUNET_ATS_scheduling_done (atsh); if (phal != NULL) GNUNET_ATS_performance_list_addresses_cancel (phal); phal = NULL; if (ph != NULL) GNUNET_ATS_performance_done (ph); ph = NULL; GNUNET_free_non_null (p0_addresses[0].addr); GNUNET_free_non_null (p0_addresses[1].addr); GNUNET_free_non_null (p1_addresses[0].addr); GNUNET_free_non_null (p1_addresses[1].addr); ret = 0; }
static void end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { die_task = GNUNET_SCHEDULER_NO_TASK; if (sched_ats != NULL) GNUNET_ATS_scheduling_done (sched_ats); free_test_address (&test_addr); ret = GNUNET_SYSERR; }
static void end () { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n"); if (die_task != GNUNET_SCHEDULER_NO_TASK) { GNUNET_SCHEDULER_cancel (die_task); die_task = GNUNET_SCHEDULER_NO_TASK; } GNUNET_ATS_scheduling_done (sched_ats); sched_ats = NULL; free_test_address (&test_addr); }
/** * Task run to terminate the testcase. * * @param cls NULL * @param tc unused */ static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { if (0 != ret) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Test failed at stage %u %s\n", off, (NULL != test_commands[off].label) ? test_commands[off].label : ""); if (NULL != interpreter_task) { GNUNET_SCHEDULER_cancel (interpreter_task); interpreter_task = NULL; } if (NULL != sched_ats) { GNUNET_ATS_scheduling_done (sched_ats); sched_ats = NULL; } if (NULL != con_ats) { GNUNET_ATS_connectivity_done (con_ats); con_ats = NULL; } if (NULL != perf_ats) { GNUNET_ATS_performance_done (perf_ats); perf_ats = NULL; } if (NULL != p2asd) { GNUNET_CONTAINER_multipeermap_iterate (p2asd, &free_asd, NULL); GNUNET_CONTAINER_multipeermap_destroy (p2asd); p2asd = NULL; } if (NULL != p2aid) { GNUNET_CONTAINER_multipeermap_iterate (p2aid, &free_aid, NULL); GNUNET_CONTAINER_multipeermap_destroy (p2aid); p2aid = NULL; } }
static void end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { die_task = GNUNET_SCHEDULER_NO_TASK; GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Timeout in stage %u\n", stage); if (NULL != atsh) GNUNET_ATS_scheduling_done (atsh); if (phal != NULL) GNUNET_ATS_performance_list_addresses_cancel (phal); phal = NULL; if (ph != NULL) GNUNET_ATS_performance_done (ph); ph = NULL; GNUNET_free_non_null (p0_addresses[0].addr); GNUNET_free_non_null (p0_addresses[1].addr); GNUNET_free_non_null (p1_addresses[0].addr); GNUNET_free_non_null (p1_addresses[1].addr); ret = GNUNET_SYSERR; }
/** * Function called when the service shuts down. Unloads our plugins * and cancels pending validations. * * @param cls closure, unused * @param tc task context (unused) */ static void shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { GST_neighbours_stop (); GST_plugins_unload (); GST_validation_stop (); GST_ats_done (); GNUNET_ATS_scheduling_done (GST_ats); GST_ats = NULL; GNUNET_ATS_connectivity_done (GST_ats_connect); GST_ats_connect = NULL; GNUNET_ATS_scanner_done (GST_is); GST_is = NULL; GST_clients_stop (); GST_blacklist_stop (); GST_hello_stop (); GST_manipulation_stop (); if (NULL != GST_peerinfo) { GNUNET_PEERINFO_disconnect (GST_peerinfo); GST_peerinfo = NULL; } if (NULL != GST_stats) { GNUNET_STATISTICS_destroy (GST_stats, GNUNET_NO); GST_stats = NULL; } if (NULL != GST_my_private_key) { GNUNET_free(GST_my_private_key); GST_my_private_key = NULL; } GST_server = NULL; }