X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Fgnunet-transport.c;h=c3c1afc38b7f0630e87c169b1526e17c0a1b5c98;hb=609e4becfe496ed62c2007db18d04fbc8d523476;hp=fcfc94ac8e8b8c50c41f580d8753eafe5452ce40;hpb=3cb90c74c5f591fd2541d154a8e7b05a1c2f4539;p=oweals%2Fgnunet.git diff --git a/src/transport/gnunet-transport.c b/src/transport/gnunet-transport.c index fcfc94ac8..c3c1afc38 100644 --- a/src/transport/gnunet-transport.c +++ b/src/transport/gnunet-transport.c @@ -2,20 +2,20 @@ This file is part of GNUnet. Copyright (C) 2011-2014, 2016, 2017 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 General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + SPDX-License-Identifier: AGPL3.0-or-later */ /** @@ -166,11 +166,6 @@ struct PeerResolutionContext */ #define BLOCKSIZE 4 -/** - * Which peer should we connect to? - */ -static char *cpid; - /** * Handle to transport service. */ @@ -283,7 +278,7 @@ static struct GNUNET_TRANSPORT_PluginMonitor *pm; /** * Identity of the peer we transmit to / connect to. - * (equivalent to 'cpid' string). + * ('-p' command-line option). */ static struct GNUNET_PeerIdentity pid; @@ -295,7 +290,7 @@ static struct GNUNET_SCHEDULER_Task *op_timeout; /** * Selected level of verbosity. */ -static int verbosity; +static unsigned int verbosity; /** * Resolver process handle. @@ -485,7 +480,7 @@ operation_timeout (void *cls) _("Failed to resolve address for peer `%s'\n"), GNUNET_i2s (&cur->addrcp->peer)); - GNUNET_CONTAINER_DLL_remove(rc_head, + GNUNET_CONTAINER_DLL_remove(rc_head, rc_tail, cur); GNUNET_TRANSPORT_address_to_string_cancel (cur->asc); @@ -496,7 +491,7 @@ operation_timeout (void *cls) } FPRINTF (stdout, "%s", - _("Failed to list connections, timeout occured\n")); + _("Failed to list connections, timeout occurred\n")); GNUNET_SCHEDULER_shutdown (); ret = 1; return; @@ -729,7 +724,7 @@ print_info (const struct GNUNET_PeerIdentity *id, GNUNET_STRINGS_absolute_time_to_string (state_timeout)); } else if ( (GNUNET_YES == iterate_connections) && - (GNUNET_TRANSPORT_is_connected(state)) ) + (GNUNET_TRANSPORT_is_connected(state)) ) { /* Only connected peers, skip state */ FPRINTF (stdout, @@ -1089,10 +1084,9 @@ plugin_monitoring_cb (void *cls, } return; /* shutdown */ } - if ( (NULL != cpid) && - (0 != memcmp (&info->address->peer, - cpid, - sizeof (struct GNUNET_PeerIdentity))) ) + if (0 != memcmp (&info->address->peer, + &pid, + sizeof (struct GNUNET_PeerIdentity))) return; /* filtered */ if (NULL == addr) { @@ -1241,21 +1235,11 @@ run (void *cls, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *mycfg) { + static struct GNUNET_PeerIdentity zero_pid; int counter = 0; ret = 1; cfg = (struct GNUNET_CONFIGURATION_Handle *) mycfg; - if ( (NULL != cpid) && - (GNUNET_OK != - GNUNET_CRYPTO_eddsa_public_key_from_string (cpid, - strlen (cpid), - &pid.public_key))) - { - FPRINTF (stderr, - _("Failed to parse peer identity `%s'\n"), - cpid); - return; - } counter = benchmark_send + benchmark_receive + iterate_connections + monitor_connections + monitor_connects + do_disconnect + @@ -1290,7 +1274,9 @@ run (void *cls, if (do_disconnect) /* -D: Disconnect from peer */ { - if (NULL == cpid) + if (0 == memcmp (&zero_pid, + &pid, + sizeof (pid))) { FPRINTF (stderr, _("Option `%s' makes no sense without option `%s'.\n"), @@ -1315,7 +1301,9 @@ run (void *cls, } else if (benchmark_send) /* -s: Benchmark sending */ { - if (NULL == cpid) + if (0 == memcmp (&zero_pid, + &pid, + sizeof (pid))) { FPRINTF (stderr, _("Option `%s' makes no sense without option `%s'.\n"), @@ -1352,7 +1340,7 @@ run (void *cls, NULL), GNUNET_MQ_handler_end () }; - + handle = GNUNET_TRANSPORT_core_connect (cfg, NULL, handlers, @@ -1378,7 +1366,7 @@ run (void *cls, else if (iterate_connections) /* -i: List information about peers once */ { pic = GNUNET_TRANSPORT_monitor_peers (cfg, - (NULL == cpid) ? NULL : &pid, + &pid, GNUNET_YES, &process_peer_iteration_cb, (void *) cfg); @@ -1391,7 +1379,7 @@ run (void *cls, monitored_peers = GNUNET_CONTAINER_multipeermap_create (10, GNUNET_NO); pic = GNUNET_TRANSPORT_monitor_peers (cfg, - (NULL == cpid) ? NULL : &pid, + &pid, GNUNET_NO, &process_peer_monitoring_cb, NULL); @@ -1439,38 +1427,50 @@ main (int argc, char * const *argv) { int res; - static const struct GNUNET_GETOPT_CommandLineOption options[] = { - { 'a', "all", NULL, - gettext_noop ("print information for all peers (instead of only connected peers)"), - 0, &GNUNET_GETOPT_set_one, &iterate_all }, - { 'b', "benchmark", NULL, - gettext_noop ("measure how fast we are receiving data from all peers (until CTRL-C)"), - 0, &GNUNET_GETOPT_set_one, &benchmark_receive }, - { 'D', "disconnect", - NULL, gettext_noop ("disconnect from a peer"), 0, - &GNUNET_GETOPT_set_one, &do_disconnect }, - { 'i', "information", NULL, - gettext_noop ("provide information about all current connections (once)"), - 0, &GNUNET_GETOPT_set_one, &iterate_connections }, - { 'm', "monitor", NULL, - gettext_noop ("provide information about all current connections (continuously)"), - 0, &GNUNET_GETOPT_set_one, &monitor_connections }, - { 'e', "events", NULL, - gettext_noop ("provide information about all connects and disconnect events (continuously)"), - 0, &GNUNET_GETOPT_set_one, &monitor_connects }, - { 'n', "numeric", - NULL, gettext_noop ("do not resolve hostnames"), 0, - &GNUNET_GETOPT_set_one, &numeric }, - { 'p', "peer", "PEER", - gettext_noop ("peer identity"), 1, &GNUNET_GETOPT_set_string, - &cpid }, - { 'P', "plugins", NULL, - gettext_noop ("monitor plugin sessions"), 0, &GNUNET_GETOPT_set_one, - &monitor_plugins }, - { 's', "send", NULL, gettext_noop - ("send data for benchmarking to the other peer (until CTRL-C)"), 0, - &GNUNET_GETOPT_set_one, &benchmark_send }, - GNUNET_GETOPT_OPTION_VERBOSE (&verbosity), + struct GNUNET_GETOPT_CommandLineOption options[] = { + GNUNET_GETOPT_option_flag ('a', + "all", + gettext_noop ("print information for all peers (instead of only connected peers)"), + &iterate_all), + GNUNET_GETOPT_option_flag ('b', + "benchmark", + gettext_noop ("measure how fast we are receiving data from all peers (until CTRL-C)"), + &benchmark_receive), + GNUNET_GETOPT_option_flag ('D', + "disconnect", + gettext_noop ("disconnect from a peer"), + &do_disconnect), + GNUNET_GETOPT_option_flag ('i', + "information", + gettext_noop ("provide information about all current connections (once)"), + &iterate_connections), + GNUNET_GETOPT_option_flag ('m', + "monitor", + gettext_noop ("provide information about all current connections (continuously)"), + &monitor_connections), + GNUNET_GETOPT_option_flag ('e', + "events", + gettext_noop ("provide information about all connects and disconnect events (continuously)"), + &monitor_connects), + GNUNET_GETOPT_option_flag ('n', + "numeric", + gettext_noop ("do not resolve hostnames"), + &numeric), + GNUNET_GETOPT_option_base32_auto ('p', + "peer", + "PEER", + gettext_noop ("peer identity"), + &pid), + GNUNET_GETOPT_option_flag ('P', + "plugins", + gettext_noop ("monitor plugin sessions"), + &monitor_plugins), + GNUNET_GETOPT_option_flag ('s', + "send", + gettext_noop + ("send data for benchmarking to the other peer (until CTRL-C)"), + &benchmark_send), + GNUNET_GETOPT_option_verbose (&verbosity), GNUNET_GETOPT_OPTION_END };