+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown testcase....\n");
+ if (timeout_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (timeout_task);
+ timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ if (NULL != download_stats)
+ {
+ GNUNET_STATISTICS_get_cancel (download_stats);
+ download_stats = NULL;
+ }
+ if (NULL != urisrecv_stat)
+ {
+ GNUNET_STATISTICS_get_cancel (urisrecv_stat);
+ urisrecv_stat = NULL;
+ }
+ if (NULL != advsent_stat)
+ {
+ GNUNET_STATISTICS_get_cancel (advsent_stat);
+ advsent_stat = NULL;
+ }
+ if (NULL != adv_peer.stats)
+ {
+ GNUNET_STATISTICS_destroy (adv_peer.stats, GNUNET_NO);
+ adv_peer.stats = NULL;
+ }
+ if (NULL != learn_peer.stats)
+ {
+ GNUNET_STATISTICS_destroy (learn_peer.stats, GNUNET_NO);
+ learn_peer.stats = NULL;
+ }
+ if (check_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (check_task);
+ check_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ if (NULL != current_adv_uri)
+ {
+ GNUNET_free (current_adv_uri);
+ current_adv_uri = NULL;
+ }
+ if (adv_peer.th != NULL)
+ {
+ GNUNET_TRANSPORT_disconnect (adv_peer.th);
+ adv_peer.th = NULL;
+ }
+ if (learn_peer.th != NULL)
+ {
+ GNUNET_TRANSPORT_disconnect (learn_peer.th);
+ learn_peer.th = NULL;
+ }
+ if (adv_peer.core != NULL)
+ {
+ GNUNET_CORE_disconnect (adv_peer.core);
+ adv_peer.core = NULL;
+ }
+ if (learn_peer.core != NULL)
+ {
+ GNUNET_CORE_disconnect (learn_peer.core);
+ learn_peer.core = NULL;
+ }
+#if START_ARM
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Killing hostlist server ARM process.\n");
+ if (0 != GNUNET_OS_process_kill (adv_peer.arm_proc, SIGTERM))
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
+ if (GNUNET_OS_process_wait (adv_peer.arm_proc) != GNUNET_OK)
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
+ GNUNET_OS_process_destroy (adv_peer.arm_proc);
+ adv_peer.arm_proc = NULL;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Killing hostlist client ARM process.\n");
+ if (0 != GNUNET_OS_process_kill (learn_peer.arm_proc, SIGTERM))
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
+ if (GNUNET_OS_process_wait (learn_peer.arm_proc) != GNUNET_OK)
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
+ GNUNET_OS_process_destroy (learn_peer.arm_proc);
+ learn_peer.arm_proc = NULL;
+#endif
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown complete....\n");