From: Christian Grothoff Date: Sun, 17 Jun 2012 11:07:33 +0000 (+0000) Subject: -starting harness for gnunet-auto-share: X-Git-Tag: initial-import-from-subversion-38251~13014 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=685d9d7c3791b897cf7b0ec1366a062b26f05a21;p=oweals%2Fgnunet.git -starting harness for gnunet-auto-share: --- diff --git a/src/fs/Makefile.am b/src/fs/Makefile.am index efe126a2c..dc8698696 100644 --- a/src/fs/Makefile.am +++ b/src/fs/Makefile.am @@ -60,6 +60,7 @@ libgnunetfstest_a_LIBADD = \ $(top_builddir)/src/testing_old/libgnunettesting_old.la bin_PROGRAMS = \ + gnunet-auto-share \ gnunet-directory \ gnunet-download \ gnunet-publish \ @@ -112,6 +113,15 @@ gnunet_publish_LDADD = \ gnunet_publish_DEPENDENCIES = \ libgnunetfs.la +gnunet_auto_share_SOURCES = \ + gnunet-auto-share.c +gnunet_auto_share_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + -lextractor \ + $(GN_LIBINTL) +gnunet_auto_share_DEPENDENCIES = \ + libgnunetfs.la + gnunet_helper_fs_publish_SOURCES = \ gnunet-helper-fs-publish.c gnunet_helper_fs_publish_LDADD = \ diff --git a/src/fs/gnunet-auto-share.c b/src/fs/gnunet-auto-share.c new file mode 100644 index 000000000..e076d8b31 --- /dev/null +++ b/src/fs/gnunet-auto-share.c @@ -0,0 +1,129 @@ +/* + This file is part of GNUnet. + (C) 2001--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 fs/gnunet-auto-share.c + * @brief automatically publish files on GNUnet + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_util_lib.h" + + +static int ret; + +static int verbose; + +static const struct GNUNET_CONFIGURATION_Handle *cfg; + +static int disable_extractor; + +static int do_disable_creation_time; + +static GNUNET_SCHEDULER_TaskIdentifier kill_task; + +static unsigned int anonymity_level = 1; + +static unsigned int content_priority = 365; + +static unsigned int replication_level = 1; + + +/** + * FIXME: docu + */ +static void +do_stop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +{ + kill_task = GNUNET_SCHEDULER_NO_TASK; +} + + + + +/** + * 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 c configuration + */ +static void +run (void *cls, char *const *args, const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *c) +{ + /* check arguments */ + if ((args[0] == NULL) || (args[1] != NULL) || + (GNUNET_YES != GNUNET_DISK_directory_test (args[0]))) + { + printf (_("You must specify one and only one directory name for automatic publication.\n")); + ret = -1; + return; + } + cfg = c; + // FIXME... + kill_task = + GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &do_stop_task, + NULL); +} + + +/** + * The main function to automatically publish content to 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[] = { + {'a', "anonymity", "LEVEL", + gettext_noop ("set the desired LEVEL of sender-anonymity"), + 1, &GNUNET_GETOPT_set_uint, &anonymity_level}, + {'d', "disable-creation-time", NULL, + gettext_noop + ("disable adding the creation time to the metadata of the uploaded file"), + 0, &GNUNET_GETOPT_set_one, &do_disable_creation_time}, + {'D', "disable-extractor", NULL, + gettext_noop ("do not use libextractor to add keywords or metadata"), + 0, &GNUNET_GETOPT_set_one, &disable_extractor}, + {'p', "priority", "PRIORITY", + gettext_noop ("specify the priority of the content"), + 1, &GNUNET_GETOPT_set_uint, &content_priority}, + {'r', "replication", "LEVEL", + gettext_noop ("set the desired replication LEVEL"), + 1, &GNUNET_GETOPT_set_uint, &replication_level}, + {'V', "verbose", NULL, + gettext_noop ("be verbose (print progress information)"), + 0, &GNUNET_GETOPT_set_one, &verbose}, + GNUNET_GETOPT_OPTION_END + }; + if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) + return 2; + return (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, "gnunet-auto-share [OPTIONS] FILENAME", + gettext_noop + ("Automatically publish files from a directory on GNUnet"), + options, &run, NULL)) ? ret : 1; +} + +/* end of gnunet-auto-share.c */ diff --git a/src/fs/gnunet-publish.c b/src/fs/gnunet-publish.c index 4b13a16bd..ef48f2d92 100644 --- a/src/fs/gnunet-publish.c +++ b/src/fs/gnunet-publish.c @@ -732,7 +732,7 @@ main (int argc, char *const *argv) 0, &GNUNET_GETOPT_set_one, &verbose}, GNUNET_GETOPT_OPTION_END }; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "GNUnet publish starts\n"); bo.expiration_time = GNUNET_FS_year_to_time (GNUNET_FS_get_current_year () + 2);