From 69cf4d54ba9defa69830d4be84c01940bfb9fe28 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 6 Oct 2013 12:47:34 +0000 Subject: [PATCH] -adding skeleton for gnunet-revocation command line tool --- src/revocation/Makefile.am | 10 +++ src/revocation/gnunet-revocation.c | 78 ++++++++++++++++++++++ src/revocation/gnunet-service-revocation.c | 3 + 3 files changed, 91 insertions(+) create mode 100644 src/revocation/gnunet-revocation.c diff --git a/src/revocation/Makefile.am b/src/revocation/Makefile.am index 7b48c5ade..ad603affb 100644 --- a/src/revocation/Makefile.am +++ b/src/revocation/Makefile.am @@ -16,6 +16,16 @@ libexecdir= $(pkglibdir)/libexec/ pkgcfg_DATA = \ revocation.conf +bin_PROGRAMS = \ + gnunet-revocation + + +gnunet_revocation_SOURCES = \ + gnunet-revocation.c +gnunet_revocation_LDADD = \ + libgnunetrevocation.la \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(GN_LIBINTL) lib_LTLIBRARIES = libgnunetrevocation.la diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c new file mode 100644 index 000000000..65b2c9eb9 --- /dev/null +++ b/src/revocation/gnunet-revocation.c @@ -0,0 +1,78 @@ +/* + This file is part of GNUnet. + (C) 2013 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 revocation/gnunet-revocation.c + * @brief tool for revoking public keys + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_util_lib.h" +#include "gnunet_revocation_service.h" + +/** + * Final status code. + */ +static int ret; + +/** + * 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) +{ + /* main code here */ +} + + +/** + * The main function of gnunet-revocation. + * + * @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[] = { + /* FIMXE: add options here */ + GNUNET_GETOPT_OPTION_END + }; + if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) + return 2; + + ret = (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, "gnunet-revocation", + gettext_noop ("help text"), options, &run, + NULL)) ? ret : 1; + GNUNET_free ((void*) argv); + return ret; +} + +/* end of gnunet-revocation.c */ diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index 9133851ca..c4622279a 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -33,6 +33,9 @@ * TODO: * - broadcast p2p revocations * - handle p2p connect (trigger SET union) + * - optimization: avoid sending revocation back to peer that we got it from; + * - optimization: have randomized delay in sending revocations to other peers + * to make it rare to traverse each link twice (NSE-style) */ #include "platform.h" #include -- 2.25.1