X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Ftest_transport_testing_restart.c;h=4df8b2d6d5622f97b15bef160950671ddb865281;hb=609e4becfe496ed62c2007db18d04fbc8d523476;hp=a08f36675e9d09de51ff078899460b22917114b5;hpb=c2d9d1e64c9801122caaa6b429fc67706db5c9d7;p=oweals%2Fgnunet.git diff --git a/src/transport/test_transport_testing_restart.c b/src/transport/test_transport_testing_restart.c index a08f36675..4df8b2d6d 100644 --- a/src/transport/test_transport_testing_restart.c +++ b/src/transport/test_transport_testing_restart.c @@ -1,150 +1,162 @@ /* This file is part of GNUnet. - Copyright (C) 2009, 2010 Christian Grothoff (and other contributing authors) + Copyright (C) 2009, 2010, 2016 GNUnet e.V. - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + SPDX-License-Identifier: AGPL3.0-or-later */ /** * @file transport/test_transport_testing_restart.c * @brief test case for transport testing library: * start the peer, get the HELLO message, restart and stop the peer - * */ #include "platform.h" #include "gnunet_transport_service.h" #include "transport-testing.h" -/** - * How long until we give up on transmitting the message? - */ #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) -struct GNUNET_SCHEDULER_Task * timeout_task; -static struct PeerContext *p; +static struct GNUNET_SCHEDULER_Task *timeout_task; + +static struct GNUNET_TRANSPORT_TESTING_PeerContext *p; + +static struct GNUNET_TRANSPORT_TESTING_Handle *tth; -struct GNUNET_TRANSPORT_TESTING_handle *tth; +static int ret; -static int ret = 0; static void end () { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); - - if (timeout_task != NULL) + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Stopping peers\n"); + if (NULL != timeout_task) GNUNET_SCHEDULER_cancel (timeout_task); - - GNUNET_TRANSPORT_TESTING_stop_peer (tth, p); - GNUNET_TRANSPORT_TESTING_done (tth); + if (NULL != p) + GNUNET_TRANSPORT_TESTING_stop_peer (p); + if (NULL != tth) + GNUNET_TRANSPORT_TESTING_done (tth); } + static void end_badly () { timeout_task = NULL; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); - - if (NULL != p) - GNUNET_TRANSPORT_TESTING_stop_peer (tth, p); - - if (NULL != tth) - GNUNET_TRANSPORT_TESTING_done (tth); - + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Timeout!\n"); + end (); ret = GNUNET_SYSERR; } + static void -restart_cb (struct PeerContext *p, void *cls) +restart_cb (void *cls) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer %u (`%s') successfully restarted\n", + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Peer %u (`%s') successfully restarted\n", p->no, GNUNET_i2s (&p->id)); - ret = 0; - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_add_now (&end, + NULL); } static void restart_task () { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer %u (`%s') restarting, \n", + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Peer %u (`%s') restarting\n", p->no, GNUNET_i2s (&p->id)); - GNUNET_TRANSPORT_TESTING_restart_peer (tth, p, NULL, restart_cb, p); + GNUNET_TRANSPORT_TESTING_restart_peer (p, + &restart_cb, + p); } + static void -start_cb (struct PeerContext *p, void *cls) +start_cb (void *cls) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer %u (`%s') successfully started\n", + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Peer %u (`%s') successfully started\n", p->no, GNUNET_i2s (&p->id)); - - GNUNET_SCHEDULER_add_now (&restart_task, NULL); + GNUNET_SCHEDULER_add_now (&restart_task, + NULL); } static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, + char *const *args, + const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { ret = 1; tth = GNUNET_TRANSPORT_TESTING_init (); GNUNET_assert (NULL != tth); - timeout_task = - GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES, &end_badly, NULL); - - p = GNUNET_TRANSPORT_TESTING_start_peer(tth, cfgfile, 1, + timeout_task + = GNUNET_SCHEDULER_add_delayed (TIMEOUT, + &end_badly, + NULL); + p = GNUNET_TRANSPORT_TESTING_start_peer(tth, + cfgfile, + 1, NULL, /* receive cb */ NULL, /* connect cb */ NULL, /* disconnect cb */ + NULL, /* nc/nd closure */ start_cb, /* startup cb */ NULL); /* closure */ if (NULL == p) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Failed to start peer\n"); - if (timeout_task != NULL) - GNUNET_SCHEDULER_cancel (timeout_task); - timeout_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to start peer\n"); + end (); + ret = 1; } } + int -main (int argc, char *argv[]) +main (int argc, + char *argv[]) { - GNUNET_log_setup ("test_transport_testing_restart", - "WARNING", - NULL); - char *const argv_1[] = { "test_transport_testing_restart", "-c", "test_transport_api_data.conf", NULL }; - struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - GNUNET_PROGRAM_run ((sizeof (argv_1) / sizeof (char *)) - 1, argv_1, - "test_transport_testing_restart", "nohelp", options, &run, &ret); - + GNUNET_log_setup ("test_transport_testing_restart", + "WARNING", + NULL); + GNUNET_PROGRAM_run ((sizeof (argv_1) / sizeof (char *)) - 1, + argv_1, + "test_transport_testing_restart", + "nohelp", + options, + &run, + NULL); return ret; }