From b02e7ec363ef07b22a96bc63e5edf79e0f2316ad Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 1 Apr 2012 07:56:13 +0000 Subject: renaming gnunet-core-list-connections to gnunet-core, adding man page --- doc/man/Makefile.am | 1 + doc/man/gnunet-core.1 | 35 ++++++++++++ src/core/Makefile.am | 12 ++-- src/core/gnunet-core-list-connections.c | 99 --------------------------------- src/core/gnunet-core.c | 99 +++++++++++++++++++++++++++++++++ src/include/gnunet_fs_service.h | 6 +- 6 files changed, 145 insertions(+), 107 deletions(-) create mode 100644 doc/man/gnunet-core.1 delete mode 100644 src/core/gnunet-core-list-connections.c create mode 100644 src/core/gnunet-core.c diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index 629ab6d13..c640460c4 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,5 +1,6 @@ man_MANS = \ gnunet-arm.1 \ + gnunet-core.1 \ gnunet-directory.1 \ gnunet-download.1 \ gnunet-download-manager.1 \ diff --git a/doc/man/gnunet-core.1 b/doc/man/gnunet-core.1 new file mode 100644 index 000000000..0971b423c --- /dev/null +++ b/doc/man/gnunet-core.1 @@ -0,0 +1,35 @@ +.TH gnunet\-core "1" "1 Apr 2012" "GNUnet" +.SH NAME +gnunet\-core \- measure and control the core subsystem + +.SH SYNOPSIS +.B gnunet\-core +[\fIOPTIONS\fR] +.SH DESCRIPTION +.PP + +gnunet\-core is a tool to access various functions of GNUnet's core subsystem from the command\-line. The only function right now is to list the peers that are directly connected to this peer (with successful cryptographic handshake). + +.TP +\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR +configuration file to use +.TP +\fB\-h\fR, \fB\-\-help\fR +print help page +.TP +\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR +Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG. +.TP +\fB\-v\fR, \fB\-\-version\fR +print the version number +.TP +\fB\-V\fR, \fB\-\-verbose\fR +be verbose + +.SH NOTES + + +.SH "REPORTING BUGS" +Report bugs by using mantis or by sending electronic mail to +.SH "SEE ALSO" +\fBgnunet\-transport\fP(1) diff --git a/src/core/Makefile.am b/src/core/Makefile.am index ad9bddcb6..b79b6cc6a 100644 --- a/src/core/Makefile.am +++ b/src/core/Makefile.am @@ -31,7 +31,7 @@ libgnunetcore_la_LDFLAGS = \ bin_PROGRAMS = \ gnunet-service-core \ - gnunet-core-list-connections + gnunet-core gnunet_service_core_SOURCES = \ gnunet-service-core.c gnunet-service-core.h \ @@ -49,14 +49,12 @@ gnunet_service_core_LDADD = \ $(GN_LIBINTL) -lz -gnunet_core_list_connections_SOURCES = \ - gnunet-core-list-connections.c -gnunet_core_list_connections_LDADD = \ +gnunet_core_SOURCES = \ + gnunet-core.c +gnunet_core_LDADD = \ $(top_builddir)/src/core/libgnunetcore.la \ - $(top_builddir)/src/transport/libgnunettransport.la \ - $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/util/libgnunetutil.la -gnunet_core_list_connections_DEPENDENCIES = \ +gnunet_core_DEPENDENCIES = \ libgnunetcore.la check_PROGRAMS = \ diff --git a/src/core/gnunet-core-list-connections.c b/src/core/gnunet-core-list-connections.c deleted file mode 100644 index 4fe0a4f86..000000000 --- a/src/core/gnunet-core-list-connections.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - This file is part of GNUnet. - (C) 2011, 2012 Christian Grothoff (and other contributing authors) - - 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 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. - - 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. -*/ - -/** - * @file core/gnunet-core.c - * @brief Print information about other known _connected_ peers. - * @author Nathan Evans - */ -#include "platform.h" -#include "gnunet_crypto_lib.h" -#include "gnunet_configuration_lib.h" -#include "gnunet_getopt_lib.h" -#include "gnunet_peerinfo_service.h" -#include "gnunet_transport_service.h" -#include "gnunet_core_service.h" -#include "gnunet_program_lib.h" - - -/** - * Callback for retrieving a list of connected peers. - * - * @param cls closure (unused) - * @param peer peer identity this notification is about - * @param atsi performance data for the connection - * @param atsi_count number of records in 'atsi' - */ -static void -connected_peer_callback (void *cls, const struct GNUNET_PeerIdentity *peer, - const struct GNUNET_ATS_Information *atsi, - unsigned int atsi_count) -{ - struct GNUNET_CRYPTO_HashAsciiEncoded enc; - - if (NULL == peer) - return; - GNUNET_CRYPTO_hash_to_enc (&peer->hashPubKey, &enc); - printf (_("Peer `%s'\n"), (const char *) &enc); -} - - -/** - * Main function that will be run by the scheduler. - * - * @param cls closure - * @param args remaining command-line arguments - * @param cfgfile name of the configuration file used (for saving, can be NULL!) - * @param cfg configuration - */ -static void -run (void *cls, char *const *args, const char *cfgfile, - const struct GNUNET_CONFIGURATION_Handle *cfg) -{ - if (args[0] != NULL) - { - FPRINTF (stderr, _("Invalid command line argument `%s'\n"), args[0]); - return; - } - GNUNET_CORE_iterate_peers (cfg, &connected_peer_callback, NULL); -} - - -/** - * The main function to obtain peer information. - * - * @param argc number of arguments from the command line - * @param argv command line arguments - * @return 0 ok, 1 on error - */ -int -main (int argc, char *const *argv) -{ - static const struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_OPTION_END - }; - return (GNUNET_OK == - GNUNET_PROGRAM_run (argc, argv, "gnunet-core", - gettext_noop - ("Print information about connected peers."), - options, &run, NULL)) ? 0 : 1; -} - -/* end of gnunet-core.c */ diff --git a/src/core/gnunet-core.c b/src/core/gnunet-core.c new file mode 100644 index 000000000..4fe0a4f86 --- /dev/null +++ b/src/core/gnunet-core.c @@ -0,0 +1,99 @@ +/* + This file is part of GNUnet. + (C) 2011, 2012 Christian Grothoff (and other contributing authors) + + 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 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. + + 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. +*/ + +/** + * @file core/gnunet-core.c + * @brief Print information about other known _connected_ peers. + * @author Nathan Evans + */ +#include "platform.h" +#include "gnunet_crypto_lib.h" +#include "gnunet_configuration_lib.h" +#include "gnunet_getopt_lib.h" +#include "gnunet_peerinfo_service.h" +#include "gnunet_transport_service.h" +#include "gnunet_core_service.h" +#include "gnunet_program_lib.h" + + +/** + * Callback for retrieving a list of connected peers. + * + * @param cls closure (unused) + * @param peer peer identity this notification is about + * @param atsi performance data for the connection + * @param atsi_count number of records in 'atsi' + */ +static void +connected_peer_callback (void *cls, const struct GNUNET_PeerIdentity *peer, + const struct GNUNET_ATS_Information *atsi, + unsigned int atsi_count) +{ + struct GNUNET_CRYPTO_HashAsciiEncoded enc; + + if (NULL == peer) + return; + GNUNET_CRYPTO_hash_to_enc (&peer->hashPubKey, &enc); + printf (_("Peer `%s'\n"), (const char *) &enc); +} + + +/** + * Main function that will be run by the scheduler. + * + * @param cls closure + * @param args remaining command-line arguments + * @param cfgfile name of the configuration file used (for saving, can be NULL!) + * @param cfg configuration + */ +static void +run (void *cls, char *const *args, const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *cfg) +{ + if (args[0] != NULL) + { + FPRINTF (stderr, _("Invalid command line argument `%s'\n"), args[0]); + return; + } + GNUNET_CORE_iterate_peers (cfg, &connected_peer_callback, NULL); +} + + +/** + * The main function to obtain peer information. + * + * @param argc number of arguments from the command line + * @param argv command line arguments + * @return 0 ok, 1 on error + */ +int +main (int argc, char *const *argv) +{ + static const struct GNUNET_GETOPT_CommandLineOption options[] = { + GNUNET_GETOPT_OPTION_END + }; + return (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, "gnunet-core", + gettext_noop + ("Print information about connected peers."), + options, &run, NULL)) ? 0 : 1; +} + +/* end of gnunet-core.c */ diff --git a/src/include/gnunet_fs_service.h b/src/include/gnunet_fs_service.h index 3eb58921a..1f1e60f0f 100644 --- a/src/include/gnunet_fs_service.h +++ b/src/include/gnunet_fs_service.h @@ -1820,7 +1820,11 @@ GNUNET_FS_file_information_create_from_data (struct GNUNET_FS_Handle *h, * @param cls closure * @param offset offset to read from; it is possible * that the caller might need to go backwards - * a bit at times + * a bit at times; set to UINT64_MAX to tell + * the reader that we won't be reading for a while + * (used to close the file descriptor but NOT fully + * clean up the reader's state); in this case, + * a value of '0' for max should be ignored * @param max maximum number of bytes that should be * copied to buf; readers are not allowed * to provide less data unless there is an error; -- cgit v1.2.3