gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r14244 - in gnunet: . src/chat src/fs src/include src/monke


From: gnunet
Subject: [GNUnet-SVN] r14244 - in gnunet: . src/chat src/fs src/include src/monkey src/transport src/vpn
Date: Mon, 24 Jan 2011 16:17:39 +0100

Author: grothoff
Date: 2011-01-24 16:17:39 +0100 (Mon, 24 Jan 2011)
New Revision: 14244

Added:
   gnunet/src/fs/perf_gnunet_service_fs_p2p_trust.c
   gnunet/src/monkey/gnunet_monkey_action.h
   gnunet/src/monkey/gnunet_monkey_edb.h
Removed:
   gnunet/src/include/gnunet_monkey_action.h
   gnunet/src/include/gnunet_monkey_edb.h
Modified:
   gnunet/TODO
   gnunet/src/chat/gnunet-chat.c
   gnunet/src/chat/gnunet-service-chat.c
   gnunet/src/fs/Makefile.am
   gnunet/src/fs/fs_download.c
   gnunet/src/fs/fs_test_lib.c
   gnunet/src/fs/gnunet-service-fs.c
   gnunet/src/include/Makefile.am
   gnunet/src/monkey/Makefile.am
   gnunet/src/transport/plugin_transport_wlan.c
   gnunet/src/vpn/gnunet-helper-vpn.c
Log:
doxyfixes

Modified: gnunet/TODO
===================================================================
--- gnunet/TODO 2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/TODO 2011-01-24 15:17:39 UTC (rev 14244)
@@ -62,6 +62,8 @@
   - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on 
gnunet-devs in 9/2009)
   - use different queue prioritization for probe-downloads vs. normal downloads
   - re-implement gnunet-auto-share
+  - implement 'GNUNET_FS_file_information_create_from_directory', avoiding
+    code duplication with gnunet-gtk's similar code (!)
 * GNUNET-GTK: [CG]
   - add tool bar
   - do meaningful update to status line (starting up, peer running, 
#connections, shutdown, ...)

Modified: gnunet/src/chat/gnunet-chat.c
===================================================================
--- gnunet/src/chat/gnunet-chat.c       2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/chat/gnunet-chat.c       2011-01-24 15:17:39 UTC (rev 14244)
@@ -83,7 +83,7 @@
  * @param cls closure, NULL
  * @param room in which room was the message received?
  * @param sender what is the ID of the sender? (maybe NULL)
- * @param member_info information about the joining member
+ * @param meta information about the joining member
  * @param message the message text
  * @param options options for the message
  * @return GNUNET_OK to accept the message now, GNUNET_NO to
@@ -183,6 +183,7 @@
 /**
  * Callback used for notification that another room member has joined or left.
  *
+ * @param cls closure (not used)
  * @param member_info will be non-null if the member is joining, NULL if he is
  *        leaving
  * @param member_id hash of public key of the user (for unique identification)
@@ -580,7 +581,7 @@
  * @param cls closure, NULL
  * @param args remaining command-line arguments
  * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
- * @param cfg configuration
+ * @param c configuration
  */
 static void
 run (void *cls,

Modified: gnunet/src/chat/gnunet-service-chat.c
===================================================================
--- gnunet/src/chat/gnunet-service-chat.c       2011-01-24 13:42:29 UTC (rev 
14243)
+++ gnunet/src/chat/gnunet-service-chat.c       2011-01-24 15:17:39 UTC (rev 
14244)
@@ -19,8 +19,8 @@
 */
 
 /**
- * @file chat/gnunet-service-caht.c
- * @brief program that tracks template
+ * @file chat/gnunet-service-chat.c
+ * @brief service providing chat functionality 
  * @author Christian Grothoff
  * @author Vitaly Minko
  */
@@ -1460,7 +1460,7 @@
  *
  * @param cls closure, NULL
  * @param server handle to the server for this service
- * @param identity the public identity of this peer
+ * @param my_identity the public identity of this peer
  * @param publicKey the public key of this peer
  */
 static void
@@ -1479,7 +1479,7 @@
  *
  * @param cls closure, NULL
  * @param server the initialized server
- * @param cfg configuration to use
+ * @param c configuration to use
  */
 static void
 run (void *cls,

Modified: gnunet/src/fs/Makefile.am
===================================================================
--- gnunet/src/fs/Makefile.am   2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/fs/Makefile.am   2011-01-24 15:17:39 UTC (rev 14244)
@@ -152,7 +152,8 @@
  test_gnunet_service_fs_p2p \
  perf_gnunet_service_fs_p2p \
  perf_gnunet_service_fs_p2p_dht \
- perf_gnunet_service_fs_p2p_index
+ perf_gnunet_service_fs_p2p_index \
+ perf_gnunet_service_fs_p2p_trust 
 
 
 if HAVE_PYTHON_PEXPECT
@@ -336,7 +337,15 @@
   $(top_builddir)/src/fs/libgnunetfs.la  \
   $(top_builddir)/src/util/libgnunetutil.la  
 
+perf_gnunet_service_fs_p2p_trust_SOURCES = \
+ perf_gnunet_service_fs_p2p_trust.c
+perf_gnunet_service_fs_p2p_trust_LDADD = \
+  $(top_builddir)/src/fs/libgnunetfstest.a \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/fs/libgnunetfs.la  \
+  $(top_builddir)/src/util/libgnunetutil.la  
 
+
 do_subst = $(SED) -e 's,address@hidden@],$(PYTHON),g'
 
 test_gnunet_fs_psd.py: test_gnunet_fs_psd.py.in Makefile

Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/fs/fs_download.c 2011-01-24 15:17:39 UTC (rev 14244)
@@ -464,6 +464,7 @@
  * the top-level block will move to state BRS_DOWNLOAD_UP.
  *
  * @param dr one of our request entries
+ * @param dr download request to match against
  * @param data plaintext data, starting from the beginning of the file
  * @param data_len number of bytes in data
  */ 
@@ -802,12 +803,7 @@
  * Schedule the download of the specified block in the tree.
  *
  * @param dc overall download this block belongs to
- * @param chk content-hash-key of the block
- * @param offset offset of the block in the file
- *         (for IBlocks, the offset is the lowest
- *          offset of any DBlock in the subtree under
- *          the IBlock)
- * @param depth depth of the block, 0 is the root of the tree
+ * @param dr request to schedule
  */
 static void
 schedule_block_download (struct GNUNET_FS_DownloadContext *dc,
@@ -1690,7 +1686,7 @@
  * @param file_start_offset desired starting offset for the download
  *             in the original file; requesting tree should not contain
  *             DBLOCKs prior to the file_start_offset
- * @param file_length desired number of bytes the user wanted to access
+ * @param desired_length desired number of bytes the user wanted to access
  *        (from file_start_offset).  Resulting tree should not contain
  *        DBLOCKs after file_start_offset + file_length.
  * @return download request tree for the given range of DBLOCKs at
@@ -1788,6 +1784,7 @@
 /**
  * Task requesting the next block from the tree encoder.
  *
+ * @param cls the 'struct GNUJNET_FS_DownloadContext' we're processing
  * @param tc task context
  */
 static void

Modified: gnunet/src/fs/fs_test_lib.c
===================================================================
--- gnunet/src/fs/fs_test_lib.c 2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/fs/fs_test_lib.c 2011-01-24 15:17:39 UTC (rev 14244)
@@ -527,6 +527,7 @@
   struct GNUNET_CONFIGURATION_Handle *gcfg;
 
   GNUNET_assert (total > 0);
+  GNUNET_assert (daemons[0] != NULL);
   pg = daemons[0]->group;
   gcfg = daemons[0]->gcfg;
   for (i=0;i<total;i++)
@@ -540,6 +541,7 @@
          GNUNET_break (GNUNET_OK ==
                        GNUNET_DISK_directory_remove 
(daemons[i]->publish_tmp_file));
          GNUNET_free (daemons[i]->publish_tmp_file);
+         daemons[i]->publish_tmp_file = NULL;
        }
       GNUNET_free (daemons[i]);
       daemons[i] = NULL;

Modified: gnunet/src/fs/gnunet-service-fs.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs.c   2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/fs/gnunet-service-fs.c   2011-01-24 15:17:39 UTC (rev 14244)
@@ -39,7 +39,7 @@
 #include "gnunet-service-fs_indexing.h"
 #include "fs.h"
 
-#define DEBUG_FS GNUNET_NO
+#define DEBUG_FS GNUNET_YES
 
 /**
  * Should we introduce random latency in processing?  Required for proper

Added: gnunet/src/fs/perf_gnunet_service_fs_p2p_trust.c
===================================================================
--- gnunet/src/fs/perf_gnunet_service_fs_p2p_trust.c                            
(rev 0)
+++ gnunet/src/fs/perf_gnunet_service_fs_p2p_trust.c    2011-01-24 15:17:39 UTC 
(rev 14244)
@@ -0,0 +1,475 @@
+/*
+     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 fs/perf_gnunet_service_fs_p2p_trust.c
+ * @brief profile P2P routing trust mechanism. Creates
+ *        a clique of NUM_DAEMONS (i.e. 3) where two
+ *        peers share (seed) different files and download
+ *        them from each other while all the other peers
+ *        just "leach" those files.  Ideally, the seeders
+ *        "learn" that they contribute (to each other),
+ *        and give the other seeder higher priority;
+ *        naturally, this only happens nicely for larger
+ *        files; finally, once the seeders are done, the
+ *        leachers should see fast download rates as well.
+ * @author Christian Grothoff
+ *
+ * Sample outputs:
+ * - 1 MB, 3 peers:
+ * Download speed of type `seeder 1' was 3864 KiB/s
+ * Download speed of type `seeder 2' was 3764 KiB/s
+ * Download speed of type `leach' was 3592 KiB/s
+ * Analysis: download too small for trust to go into effect
+ * - 100 MB, 3 peers:
+ * Download speed of type `seeder 1' was 4018 KiB/s
+ * Download speed of type `seeder 2' was 4016 KiB/s
+ * 
+ * Analysis: leach squeezed out entirely early, then backs off far too
+ *           far => fails to ever recover (code needs improvement...)
+ *          [system load is initially very high, then drops to 0
+ *           after seeders are done]
+ */
+#include "platform.h"
+#include "fs_test_lib.h"
+#include "gnunet_testing_lib.h"
+
+#define VERBOSE GNUNET_NO
+
+/**
+ * File-size we use for testing.
+ */
+#define FILESIZE (1024 * 1024 * 100)
+
+/**
+ * How long until we give up on transmitting the message?
+ */
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 30)
+
+/**
+ * Number of daemons in clique, must be at least 3 (!).
+ */
+#define NUM_DAEMONS 3
+
+/**
+ * Seed for first file on offer.
+ */
+#define SEED1 42
+
+/**
+ * Seed for second file on offer.
+ */
+#define SEED2 43
+
+static struct GNUNET_FS_TestDaemon *daemons[NUM_DAEMONS];
+
+static int ok;
+
+static struct GNUNET_TIME_Absolute start_time;
+
+static const char *progname;
+
+static struct GNUNET_FS_Uri *uri1;
+
+static struct GNUNET_FS_Uri *uri2;
+
+static void
+do_stop (void *cls,
+        const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
+                              daemons);
+}
+
+
+/**
+ * Master context for 'stat_run'.
+ */
+struct StatMaster
+{
+  struct GNUNET_STATISTICS_Handle *stat;  
+  unsigned int daemon;
+  unsigned int value;
+};
+
+struct StatValues
+{
+  const char *subsystem;
+  const char *name;
+};
+
+/**
+ * Statistics we print out.
+ */
+static struct StatValues stats[] =
+  {
+    { "fs", "# queries forwarded"},
+    { "fs", "# replies received and matched"},
+    { "fs", "# results found locally"},
+    { "fs", "# requests forwarded due to high load"},
+    { "fs", "# requests done for free (low load)"},
+    { "fs", "# requests dropped, priority insufficient"},
+    { "fs", "# requests done for a price (normal load)"},
+    { "fs", "# requests dropped by datastore (queue length limit)"},
+    { "fs", "# P2P searches received"},
+    { "fs", "# P2P searches discarded (queue length bound)"},
+    { "fs", "# replies received for local clients"},
+    { "fs", "# queries retransmitted to same target"},
+    { "fs", "cummulative artificial delay introduced (ms)"},
+    { "core", "# bytes decrypted"},
+    { "core", "# bytes encrypted"},
+    { "core", "# discarded CORE_SEND requests"},
+    { "core", "# discarded CORE_SEND request bytes"},
+    { "core", "# discarded lower priority CORE_SEND requests"},
+    { "core", "# discarded lower priority CORE_SEND request bytes"},
+    { "transport", "# bytes received via TCP"},
+    { "transport", "# bytes transmitted via TCP"},
+    { "datacache", "# bytes stored"},
+    { NULL, NULL}
+  };
+
+
+/**
+ * Callback function to process statistic values.
+ *
+ * @param cls closure
+ * @param subsystem name of subsystem that created the statistic
+ * @param name the name of the datum
+ * @param value the current value
+ * @param is_persistent GNUNET_YES if the value is persistent, GNUNET_NO if not
+ * @return GNUNET_OK to continue, GNUNET_SYSERR to abort iteration
+ */
+static int
+print_stat (void *cls,
+           const char *subsystem,
+           const char *name,
+           uint64_t value,
+           int is_persistent)
+{
+  struct StatMaster *sm = cls;
+  fprintf (stderr,
+          "Peer %2u: %12s/%50s = %12llu\n",
+          sm->daemon,
+          subsystem,
+          name,
+          (unsigned long long) value);
+  return GNUNET_OK;
+}
+
+
+/**
+ * Function that gathers stats from all daemons.
+ */
+static void
+stat_run (void *cls,
+         const struct GNUNET_SCHEDULER_TaskContext *tc);
+
+
+/**
+ * Function called when GET operation on stats is done.
+ */
+static void
+get_done (void *cls,
+         int success)
+{
+  struct StatMaster *sm = cls;
+  GNUNET_break (GNUNET_OK ==  success);
+  sm->value++;
+  GNUNET_SCHEDULER_add_now (&stat_run, sm);
+}
+
+
+/**
+ * Function that gathers stats from all daemons.
+ */
+static void
+stat_run (void *cls,
+         const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct StatMaster *sm = cls;
+ 
+  if (stats[sm->value].name != NULL)
+    {
+      GNUNET_STATISTICS_get (sm->stat,
+#if 0
+                            NULL, NULL, 
+#else
+                            stats[sm->value].subsystem,
+                            stats[sm->value].name,
+#endif
+                            GNUNET_TIME_UNIT_FOREVER_REL,
+                            &get_done,
+                            &print_stat, sm);
+      return;
+    }
+  GNUNET_STATISTICS_destroy (sm->stat, GNUNET_NO);
+  sm->value = 0;
+  sm->daemon++;
+  if (sm->daemon == NUM_DAEMONS)
+    {
+      GNUNET_free (sm);
+      GNUNET_SCHEDULER_add_now (&do_stop, NULL);
+      return;
+    }
+  sm->stat = GNUNET_STATISTICS_create ("<driver>",
+                                      GNUNET_FS_TEST_get_configuration 
(daemons,
+                                                                        
sm->daemon));
+  GNUNET_SCHEDULER_add_now (&stat_run, sm);
+}
+
+
+static void
+do_report (void *cls,
+        const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  static int download_counter;
+  const char *type = cls;
+  struct GNUNET_TIME_Relative del;
+  char *fancy; 
+  struct StatMaster *sm;
+  
+  if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE))
+    {
+      del = GNUNET_TIME_absolute_get_duration (start_time);
+      if (del.rel_value == 0)
+       del.rel_value = 1;
+      fancy = GNUNET_STRINGS_byte_size_fancy (((unsigned long long)FILESIZE) * 
1000LL / del.rel_value);
+      fprintf (stdout,
+              "Download speed of type `%s' was %s/s\n",
+              type,
+              fancy);
+      GNUNET_free (fancy);
+      if (NUM_DAEMONS != ++download_counter)
+       return; /* more downloads to come */
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                 "Finished all downloads, shutting down\n",
+                 (unsigned long long) FILESIZE);
+      sm = GNUNET_malloc (sizeof (struct StatMaster));
+      sm->stat = GNUNET_STATISTICS_create ("<driver>",
+                                          GNUNET_FS_TEST_get_configuration 
(daemons,
+                                                                            
sm->daemon));
+      GNUNET_SCHEDULER_add_now (&stat_run, sm);
+    }
+  else
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 "Timeout during download for type `%s', shutting down with 
error\n",
+                 type);
+      ok = 1;
+      GNUNET_SCHEDULER_add_now (&do_stop, NULL);
+    }
+}
+
+
+static void
+do_downloads (void *cls,
+             const struct GNUNET_FS_Uri *u2)
+{
+  int anonymity;
+  unsigned int i;
+
+  if (NULL == u2)
+    {
+      GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
+                                  daemons);
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 "Timeout during upload attempt, shutting down with error\n");
+      ok = 1;
+      return;
+    }
+  uri2 = GNUNET_FS_uri_dup (u2);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Downloading %llu bytes\n",
+             (unsigned long long) FILESIZE);
+  start_time = GNUNET_TIME_absolute_get ();
+  if (NULL != strstr (progname, "dht"))
+    anonymity = 0;
+  else
+    anonymity = 1;
+  /* (semi) leach-download(s); not true leaches since
+     these peers do participate in sharing, they just
+     don't have to offer anything *initially*.  */
+  for (i=0;i<NUM_DAEMONS-2;i++)
+    GNUNET_FS_TEST_download (daemons[i],
+                            TIMEOUT,
+                            anonymity, 
+                            0 == (i%2) ? SEED1 : SEED2, 
+                            0 == (i%2) ? uri1  : uri2,  
+                            VERBOSE, 
+                            &do_report, "leach");
+  /* mutual downloads of (primary) sharing peers */
+  GNUNET_FS_TEST_download (daemons[NUM_DAEMONS-1],
+                          TIMEOUT,
+                          anonymity, SEED1, uri1, 
+                          VERBOSE, 
+                          &do_report, "seeder 2");
+  GNUNET_FS_TEST_download (daemons[NUM_DAEMONS-2],
+                          TIMEOUT,
+                          anonymity, SEED2, uri2, 
+                          VERBOSE, 
+                          &do_report, "seeder 1");
+}
+
+
+static void
+do_publish2 (void *cls,
+            const struct GNUNET_FS_Uri *u1)
+{
+  int do_index;
+  int anonymity;
+
+  if (NULL == u1)
+    {
+      GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
+                                  daemons);
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 "Timeout during upload attempt, shutting down with error\n");
+      ok = 1;
+      return;
+    }
+  uri1 = GNUNET_FS_uri_dup (u1);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Publishing %llu bytes\n",
+             (unsigned long long) FILESIZE);
+  if (NULL != strstr (progname, "index"))
+    do_index = GNUNET_YES;
+  else
+    do_index = GNUNET_NO;
+  if (NULL != strstr (progname, "dht"))
+    anonymity = 0;
+  else
+    anonymity = 1;
+  
+  GNUNET_FS_TEST_publish (daemons[NUM_DAEMONS-2],
+                         TIMEOUT,
+                         anonymity, 
+                         do_index, FILESIZE, SEED2, 
+                         VERBOSE, 
+                         &do_downloads, NULL);
+}
+
+static void
+do_publish1 (void *cls,
+           const char *emsg)
+{
+  int do_index;
+  int anonymity;
+
+  if (NULL != emsg)
+    {
+      GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
+                                  daemons);
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 "Error trying to connect: %s\n",
+                 emsg);
+      ok = 1;
+      return;
+    }
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Publishing %llu bytes\n",
+             (unsigned long long) FILESIZE);
+  if (NULL != strstr (progname, "index"))
+    do_index = GNUNET_YES;
+  else
+    do_index = GNUNET_NO;
+  if (NULL != strstr (progname, "dht"))
+    anonymity = 0;
+  else
+    anonymity = 1;
+  
+  GNUNET_FS_TEST_publish (daemons[NUM_DAEMONS-1],
+                         TIMEOUT,
+                         anonymity, 
+                         do_index, FILESIZE, SEED1, 
+                         VERBOSE, 
+                         &do_publish2, NULL);
+}
+
+
+static void
+do_connect (void *cls,
+           const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct GNUNET_TESTING_PeerGroup *pg;
+
+  GNUNET_assert (0 != (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Daemons started, will now try to connect them\n");
+  pg = GNUNET_FS_TEST_get_group (daemons);
+  GNUNET_TESTING_create_topology (pg, 
+                                 GNUNET_TESTING_TOPOLOGY_CLIQUE,
+                                 GNUNET_TESTING_TOPOLOGY_NONE,
+                                 NULL);
+  GNUNET_TESTING_connect_topology (pg,
+                                  GNUNET_TESTING_TOPOLOGY_CLIQUE,
+                                  GNUNET_TESTING_TOPOLOGY_OPTION_NONE,
+                                  0.0,
+                                  &do_publish1,
+                                  NULL);
+}
+
+
+static void
+run (void *cls,
+     char *const *args,
+     const char *cfgfile,
+     const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+  GNUNET_FS_TEST_daemons_start ("fs_test_lib_data.conf",
+                               TIMEOUT,
+                               NUM_DAEMONS,
+                               daemons,
+                               &do_connect,
+                               NULL);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+  char *const argvx[] = { 
+    "perf-gnunet-service-fs-p2p",
+    "-c",
+    "fs_test_lib_data.conf",
+#if VERBOSE
+    "-L", "DEBUG",
+#endif
+    NULL
+  };
+  struct GNUNET_GETOPT_CommandLineOption options[] = {
+    GNUNET_GETOPT_OPTION_END
+  };
+  progname = argv[0];
+  GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
+  GNUNET_log_setup ("perf_gnunet_service_fs_p2p_index", 
+#if VERBOSE
+                   "DEBUG",
+#else
+                   "WARNING",
+#endif
+                   NULL);
+  GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
+                      argvx, "perf-gnunet-service-fs-p2p-index",
+                     "nohelp", options, &run, NULL);
+  GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
+  return ok;
+}
+
+/* end of perf_gnunet_service_fs_p2p_index.c */

Modified: gnunet/src/include/Makefile.am
===================================================================
--- gnunet/src/include/Makefile.am      2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/include/Makefile.am      2011-01-24 15:17:39 UTC (rev 14244)
@@ -64,6 +64,4 @@
   gnunet_transport_service.h \
   gnunet_transport_plugin.h \
   gnunet_upnp_service.h \
-  gnunet_util_lib.h \
-  gnunet_monkey_edb.h \
-  gnunet_monkey_action.h
+  gnunet_util_lib.h 

Deleted: gnunet/src/include/gnunet_monkey_action.h
===================================================================
--- gnunet/src/include/gnunet_monkey_action.h   2011-01-24 13:42:29 UTC (rev 
14243)
+++ gnunet/src/include/gnunet_monkey_action.h   2011-01-24 15:17:39 UTC (rev 
14244)
@@ -1,50 +0,0 @@
-/*
-      This file is part of GNUnet
-      (C) 2010, 2011 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 monkey/gnunet_monkey_action.h
- * @brief Monkey API for actions taken by Monkey while debugging
- */
-
-#ifndef GNUNET_MONKEY_ACTION_H
-#define GNUNET_MONKEY_ACTION_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#if 0                          /* keep Emacsens' auto-indent happy */
-}
-#endif
-#endif
-
-int GNUNET_MONKEY_ACTION_report_file();
-int GNUNET_MONKEY_ACTION_report_email();
-int GNUNET_MONKEY_ACTION_rerun_with_valgrind();
-int GNUNET_MONKEY_ACTION_rerun_with_gdb();
-int GNUNET_MONKEY_ACTION_check_bug_redundancy();
-
-
-#if 0                          /* keep Emacsens' auto-indent happy */
-{
-#endif
-#ifdef __cplusplus
-}
-#endif
-#endif

Deleted: gnunet/src/include/gnunet_monkey_edb.h
===================================================================
--- gnunet/src/include/gnunet_monkey_edb.h      2011-01-24 13:42:29 UTC (rev 
14243)
+++ gnunet/src/include/gnunet_monkey_edb.h      2011-01-24 15:17:39 UTC (rev 
14244)
@@ -1,101 +0,0 @@
-/*
-      This file is part of GNUnet
-      (C) 2009, 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 include/gnunet_monkey_edb.h
- * @brief Monkey API for accessing the Expression Database (edb)
- */
-
-#ifndef GNUNET_MONKEY_EDB_H
-#define GNUNET_MONKEY_EDB_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#if 0                          /* keep Emacsens' auto-indent happy */
-}
-#endif
-#endif
-
-
-struct GNUNET_MONKEY_EDB_Context;
-
-/**
- * Establish a connection to the Expression Database
- *
- * @param db_file_name path the Expression Database file
- * @return context to use for Accessing the Expression Database, NULL on error
- */
-struct GNUNET_MONKEY_EDB_Context *GNUNET_MONKEY_EDB_connect (const char
-                                                            *db_file_name);
-
-
-/**
- * Disconnect from Database, and cleanup resources
- *
- * @param context context
- * @return GNUNET_OK on success, GNUNET_NO on failure
- */
-int GNUNET_MONKEY_EDB_disconnect (struct GNUNET_MONKEY_EDB_Context *cntxt);
-
-
-typedef int (*GNUNET_MONKEY_ExpressionIterator) (void *, int, char **,
-                                                char **);
-
-
-/**
- * Run an SQLite query to retrieve those expressions that are previous to
- * given expression and are in the same scope of the given expression
- * For example, consider the following code snippet:
- * {
- *   struct Something whole; // line no.1 
- *   struct SomethingElse part; // line no.2
- *   whole.part = &part; // line no.3
- *   whole.part->member = 1; // line no.4
- * }
- * If the expression supplied to the function is that of line no.4 
"whole.part->member = 1;"
- * The returned list of expressions will be: whole.part (line no.4), 
whole.part->member (line no.4),
- * whole (line no.3), whole.part (line no.3), &part (line no.3), whole.part = 
&part (line no.3)
- *
- * @param cntxt context containing the Expression Database handle.
- * @param file_name path to the file in which the expression in question exists
- * @param start_line_no expression beginning line
- * @param end_line_no line number for the expression's scope end
- * @param iter callback function, iterator for expressions returned from the 
Database
- * @param iter_cls closure for the expression iterator
- * @return GNUNET_OK success, GNUNET_NO failure
- */
-int
-GNUNET_MONKEY_EDB_get_expressions (struct GNUNET_MONKEY_EDB_Context *cntxt,
-                                  const char *file_name, int start_line_no,
-                                  int end_line_no,
-                                  GNUNET_MONKEY_ExpressionIterator iter,
-                                  void *iter_cls);
-
-
-
-#if 0                          /* keep Emacsens' auto-indent happy */
-{
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif

Modified: gnunet/src/monkey/Makefile.am
===================================================================
--- gnunet/src/monkey/Makefile.am       2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/monkey/Makefile.am       2011-01-24 15:17:39 UTC (rev 14244)
@@ -21,12 +21,12 @@
 libmonkeyedb_la_SOURCES = \
   edb_api.c \
   gnunet_monkey_edb.h
-  
+
 libmonkeyedb_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
   -lsqlite3 \
   $(GN_LIBINTL) $(XLIB)  
-  
+
 libmonkeyaction_la_SOURCES = \
   action_api.c \
   gnunet_monkey_action.h
@@ -35,7 +35,6 @@
   $(top_builddir)/src/util/libgnunetutil.la \
   $(GN_LIBINTL) $(XLIB)  
 
-  
 bin_PROGRAMS = \
  gnunet-monkey \
  gnunet-service-monkey 
@@ -80,7 +79,7 @@
 
 bug_null_pointer_exception:
        gcc -g -O0 -o bug_null_pointer_exception bug_null_pointer_exception.c
-       
+
 check_PROGRAMS = \
     test_monkey_edb
     #test_gnunet_monkey        
@@ -95,14 +94,14 @@
 test_monkey_edb_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(top_builddir)/src/monkey/libmonkeyedb.la
-  
+
 #test_gnunet_monkey_SOURCES = \
  #test_gnunet_monkey.c
 #test_gnunet_monkey_LDADD = \
   #$(top_builddir)/src/arm/libgnunetarm.la \
   #$(top_builddir)/src/util/libgnunetutil.la  
-  
-  
+
+
 check_SCRIPTS = \
   #test_gnunet_monkey.sh \
   #test_monkey_npe.sh

Copied: gnunet/src/monkey/gnunet_monkey_action.h (from rev 14229, 
gnunet/src/include/gnunet_monkey_action.h)
===================================================================
--- gnunet/src/monkey/gnunet_monkey_action.h                            (rev 0)
+++ gnunet/src/monkey/gnunet_monkey_action.h    2011-01-24 15:17:39 UTC (rev 
14244)
@@ -0,0 +1,50 @@
+/*
+      This file is part of GNUnet
+      (C) 2010, 2011 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 monkey/gnunet_monkey_action.h
+ * @brief Monkey API for actions taken by Monkey while debugging
+ */
+
+#ifndef GNUNET_MONKEY_ACTION_H
+#define GNUNET_MONKEY_ACTION_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#if 0                          /* keep Emacsens' auto-indent happy */
+}
+#endif
+#endif
+
+int GNUNET_MONKEY_ACTION_report_file();
+int GNUNET_MONKEY_ACTION_report_email();
+int GNUNET_MONKEY_ACTION_rerun_with_valgrind();
+int GNUNET_MONKEY_ACTION_rerun_with_gdb();
+int GNUNET_MONKEY_ACTION_check_bug_redundancy();
+
+
+#if 0                          /* keep Emacsens' auto-indent happy */
+{
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

Copied: gnunet/src/monkey/gnunet_monkey_edb.h (from rev 14229, 
gnunet/src/include/gnunet_monkey_edb.h)
===================================================================
--- gnunet/src/monkey/gnunet_monkey_edb.h                               (rev 0)
+++ gnunet/src/monkey/gnunet_monkey_edb.h       2011-01-24 15:17:39 UTC (rev 
14244)
@@ -0,0 +1,103 @@
+/*
+      This file is part of GNUnet
+      (C) 2009, 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 monkey/gnunet_monkey_edb.h
+ * @brief Monkey API for accessing the Expression Database (edb)
+ */
+
+#ifndef GNUNET_MONKEY_EDB_H
+#define GNUNET_MONKEY_EDB_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#if 0                          /* keep Emacsens' auto-indent happy */
+}
+#endif
+#endif
+
+
+struct GNUNET_MONKEY_EDB_Context;
+
+/**
+ * Establish a connection to the Expression Database
+ *
+ * @param db_file_name path the Expression Database file
+ * @return context to use for Accessing the Expression Database, NULL on error
+ */
+struct GNUNET_MONKEY_EDB_Context *GNUNET_MONKEY_EDB_connect (const char
+                                                            *db_file_name);
+
+
+/**
+ * Disconnect from Database, and cleanup resources
+ *
+ * @param context context
+ * @return GNUNET_OK on success, GNUNET_NO on failure
+ */
+int GNUNET_MONKEY_EDB_disconnect (struct GNUNET_MONKEY_EDB_Context *cntxt);
+
+
+typedef int (*GNUNET_MONKEY_ExpressionIterator) (void *, int, char **,
+                                                char **);
+
+
+/**
+ * Run an SQLite query to retrieve those expressions that are previous to
+ * given expression and are in the same scope of the given expression
+ * For example, consider the following code snippet:
+ *
+ * {
+ *   struct Something whole; // line no.1 
+ *   struct SomethingElse part; // line no.2
+ *   whole.part = &part; // line no.3
+ *   whole.part->member = 1; // line no.4
+ * }
+ *
+ * If the expression supplied to the function is that of line no.4 
"whole.part->member = 1;"
+ * The returned list of expressions will be: whole.part (line no.4), 
whole.part->member (line no.4),
+ * whole (line no.3), whole.part (line no.3), &part (line no.3), whole.part = 
&part (line no.3)
+ *
+ * @param cntxt context containing the Expression Database handle.
+ * @param file_name path to the file in which the expression in question exists
+ * @param start_line_no expression beginning line
+ * @param end_line_no line number for the expression's scope end
+ * @param iter callback function, iterator for expressions returned from the 
Database
+ * @param iter_cls closure for the expression iterator
+ * @return GNUNET_OK success, GNUNET_NO failure
+ */
+int
+GNUNET_MONKEY_EDB_get_expressions (struct GNUNET_MONKEY_EDB_Context *cntxt,
+                                  const char *file_name, int start_line_no,
+                                  int end_line_no,
+                                  GNUNET_MONKEY_ExpressionIterator iter,
+                                  void *iter_cls);
+
+
+
+#if 0                          /* keep Emacsens' auto-indent happy */
+{
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Modified: gnunet/src/transport/plugin_transport_wlan.c
===================================================================
--- gnunet/src/transport/plugin_transport_wlan.c        2011-01-24 13:42:29 UTC 
(rev 14243)
+++ gnunet/src/transport/plugin_transport_wlan.c        2011-01-24 15:17:39 UTC 
(rev 14244)
@@ -893,7 +893,7 @@
 
 /**
  * Function to sort the message into the message fragment queue
- * @prarm plugin the plugin struct
+ * @param plugin the plugin struct
  * @param message to sort into the queue
  */
 static void

Modified: gnunet/src/vpn/gnunet-helper-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-helper-vpn.c  2011-01-24 13:42:29 UTC (rev 14243)
+++ gnunet/src/vpn/gnunet-helper-vpn.c  2011-01-24 15:17:39 UTC (rev 14244)
@@ -59,7 +59,7 @@
 /**
  * Creates a tun-interface called dev;
  * @param dev is asumed to point to a char[IFNAMSIZ]
- *        if *dev == '\0', uses the name supplied by the kernel
+ *        if *dev == '\\0', uses the name supplied by the kernel
  * @return the fd to the tun or -1 on error
  */
 static int 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]