From 822aacaf607f72315c4a70dc1f7532f94dca54be Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 20 Oct 2010 13:01:13 +0000 Subject: largely for testing --- src/util/Makefile.am | 10 ++++- src/util/gnunet-resolver.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 src/util/gnunet-resolver.c diff --git a/src/util/Makefile.am b/src/util/Makefile.am index c8fd7dfba..427ed2567 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -82,7 +82,8 @@ libgnunetutil_la_LDFLAGS = \ bin_PROGRAMS = \ - gnunet-service-resolver + gnunet-service-resolver \ + gnunet-resolver gnunet_service_resolver_SOURCES = \ gnunet-service-resolver.c @@ -91,6 +92,13 @@ gnunet_service_resolver_LDADD = \ $(GN_LIBINTL) +gnunet_resolver_SOURCES = \ + gnunet-resolver.c +gnunet_resolver_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(GN_LIBINTL) + + plugin_LTLIBRARIES = \ libgnunet_plugin_test.la diff --git a/src/util/gnunet-resolver.c b/src/util/gnunet-resolver.c new file mode 100644 index 000000000..9686d3a06 --- /dev/null +++ b/src/util/gnunet-resolver.c @@ -0,0 +1,96 @@ +/* + This file is part of GNUnet. + (C) 2010 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 util/gnunet-resolver.c + * @brief tool to test resolver + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_util_lib.h" +#include "gnunet_resolver_service.h" + +#define GET_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1) + +/** + * Callback function to display address. + */ +static void +printer (void *cls, + const struct sockaddr * addr, + socklen_t addrlen) +{ + if (addr == NULL) + return; + FPRINTF (stdout, + "%s\n", + GNUNET_a2s (addr, addrlen)); +} + + +/** + * Main function that will be run by the scheduler. + * + * @param cls closure + * @param sched the scheduler to use + * @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, + struct GNUNET_SCHEDULER_Handle *sched, + char *const *args, + const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *cfg) +{ + if (args[0] == NULL) + return; + GNUNET_RESOLVER_ip_get (sched, cfg, + args[0], + AF_UNSPEC, + GET_TIMEOUT, + &printer, + NULL); +} + +/** + * The main function to obtain statistics in GNUnet. + * + * @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-resolver [hostname]", + gettext_noop + ("Test GNUnet DNS resolver code."), + options, &run, NULL)) ? 0 : 1; +} + +/* end of gnunet-resolver.c */ -- cgit v1.2.3