gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r33494 - in gnunet/src: hello include peerinfo peerinfo-too


From: gnunet
Subject: [GNUnet-SVN] r33494 - in gnunet/src: hello include peerinfo peerinfo-tool transport
Date: Tue, 3 Jun 2014 11:34:15 +0200

Author: wachs
Date: 2014-06-03 11:34:15 +0200 (Tue, 03 Jun 2014)
New Revision: 33494

Modified:
   gnunet/src/hello/gnunet-hello.c
   gnunet/src/hello/hello.c
   gnunet/src/hello/test_friend_hello.c
   gnunet/src/hello/test_hello.c
   gnunet/src/include/gnunet_hello_lib.h
   gnunet/src/peerinfo-tool/gnunet-peerinfo.c
   gnunet/src/peerinfo/perf_peerinfo_api.c
   gnunet/src/peerinfo/test_peerinfo_api.c
   gnunet/src/peerinfo/test_peerinfo_api_friend_only.c
   gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c
   gnunet/src/transport/gnunet-service-transport_hello.c
   gnunet/src/transport/gnunet-service-transport_validation.c
Log:
fix for bug #0003416: do not stop parsing uri when plugin is not found
- changed semantics for address generator cb: GNUNET_SYSERR indicates stop, >= 
0 indicates bytes added


Modified: gnunet/src/hello/gnunet-hello.c
===================================================================
--- gnunet/src/hello/gnunet-hello.c     2014-06-03 09:29:04 UTC (rev 33493)
+++ gnunet/src/hello/gnunet-hello.c     2014-06-03 09:34:15 UTC (rev 33494)
@@ -85,14 +85,14 @@
  * @param buf where to add the addresses
  * @return number of bytes added, 0 to terminate
  */
-static size_t
+static ssize_t
 add_from_hello (void *cls, size_t max, void *buf)
 {
   struct GNUNET_HELLO_Message **orig = cls;
   struct AddContext ac;
 
   if (NULL == *orig)
-    return 0; /* already done */
+    return GNUNET_SYSERR; /* already done */
   ac.buf = buf;
   ac.max = max;
   ac.ret = 0;

Modified: gnunet/src/hello/hello.c
===================================================================
--- gnunet/src/hello/hello.c    2014-06-03 09:29:04 UTC (rev 33493)
+++ gnunet/src/hello/hello.c    2014-06-03 09:34:15 UTC (rev 33494)
@@ -22,6 +22,7 @@
  * @file hello/hello.c
  * @brief helper library for handling HELLOs
  * @author Christian Grothoff
+ * @author Matthias Wachs
  */
 #include "platform.h"
 #include "gnunet_hello_lib.h"
@@ -98,6 +99,17 @@
   int ret;
 
   /**
+   * Counter
+   */
+  unsigned int counter_total;
+
+  /**
+   * Counter skipped addresses
+   */
+  unsigned int counter_added;
+
+
+  /**
    * Function for finding transport plugins by name.
    */
   GNUNET_HELLO_TransportPluginsFind plugins_find;
@@ -237,7 +249,7 @@
   used = 0;
   if (addrgen != NULL)
   {
-    while (0 != (ret = addrgen (addrgen_cls, max, &buffer[used])))
+    while (GNUNET_SYSERR != (ret = addrgen (addrgen_cls, max, &buffer[used])))
     {
       max -= ret;
       used += ret;
@@ -395,13 +407,13 @@
 }
 
 
-static size_t
+static ssize_t
 merge_addr (void *cls, size_t max, void *buf)
 {
   struct MergeContext *mc = cls;
 
   if (mc->h1 == NULL)
-    return 0;
+    return GNUNET_SYSERR; /* Stop iteration */
   mc->ret = 0;
   mc->max = max;
   mc->buf = buf;
@@ -433,11 +445,11 @@
   int friend_only;
 
   if (h1->friend_only != h2->friend_only)
-       friend_only = GNUNET_YES; /* One of the HELLOs is friend only */
+    friend_only = GNUNET_YES; /* One of the HELLOs is friend only */
   else
-       friend_only = ntohl (h1->friend_only); /* Both HELLO's have the same 
type */
+    friend_only = ntohl (h1->friend_only); /* Both HELLO's have the same type 
*/
 
-       return GNUNET_HELLO_create (&h1->publicKey, &merge_addr, &mc, 
friend_only);
+  return GNUNET_HELLO_create (&h1->publicKey, &merge_addr, &mc, friend_only);
 }
 
 
@@ -895,9 +907,9 @@
  * @param cls the 'struct GNUNET_HELLO_AddressParsingContext'
  * @param max number of bytes available for HELLO construction
  * @param buffer where to copy the next address (in binary format)
- * @return number of bytes added to buffer
+ * @return number of bytes added to buffer, GNUNET_SYSERR on error
  */
-static size_t
+static ssize_t
 add_address_to_hello (void *cls, size_t max, void *buffer)
 {
   struct GNUNET_HELLO_ParseUriContext *ctx = cls;
@@ -914,15 +926,16 @@
   void *addr;
   size_t addr_len;
   struct GNUNET_HELLO_Address haddr;
-  size_t ret;
+  ssize_t ret;
 
+
   if (NULL == ctx->pos)
-    return 0;
+    return GNUNET_SYSERR;
   if ('!' != ctx->pos[0])
   {
     ctx->ret = GNUNET_SYSERR;
     GNUNET_break (0);
-    return 0;
+    return GNUNET_SYSERR;
   }
   ctx->pos++;
 
@@ -943,7 +956,7 @@
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   _("Failed to parse HELLO message: missing expiration 
time\n"));
       GNUNET_break (0);
-      return 0;
+      return GNUNET_SYSERR;
     }
 
     expiration_seconds = mktime (&expiration_time);
@@ -953,7 +966,7 @@
                   _("Failed to parse HELLO message: invalid expiration 
time\n"));
       ctx->ret = GNUNET_SYSERR;
       GNUNET_break (0);
-      return 0;
+      return GNUNET_SYSERR;
     }
     expire.abs_value_us = expiration_seconds * 1000LL * 1000LL;
   }
@@ -963,7 +976,7 @@
                 _("Failed to parse HELLO message: malformed\n"));
     ctx->ret = GNUNET_SYSERR;
     GNUNET_break (0);
-    return 0;
+    return GNUNET_SYSERR;
   }
   tname++;
   address = strchr (tname, (int) '!');
@@ -973,11 +986,12 @@
                 _("Failed to parse HELLO message: missing transport 
plugin\n"));
     ctx->ret = GNUNET_SYSERR;
     GNUNET_break (0);
-    return 0;
+    return GNUNET_SYSERR;
   }
   address++;
   end = strchr (address, (int) '!');
   ctx->pos = end;
+  ctx->counter_total ++;
   plugin_name = GNUNET_strndup (tname, address - (tname+1));
   papi = ctx->plugins_find (plugin_name);
   if (NULL == papi)
@@ -986,7 +1000,7 @@
      * Skip this part, advance to the next one and recurse.
      * But only if this is not the end of string.
      */
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                 _("Plugin `%s' not found, skipping address\n"),
                 plugin_name);
     GNUNET_free (plugin_name);
@@ -994,7 +1008,7 @@
   }
   if (NULL == papi->string_to_address)
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                _("Plugin `%s' does not support URIs yet\n"),
                plugin_name);
     GNUNET_free (plugin_name);
@@ -1027,6 +1041,7 @@
   haddr.address = addr;
   haddr.transport_name = plugin_name;
   ret = GNUNET_HELLO_add_address (&haddr, expire, buffer, max);
+  ctx->counter_added ++;
   GNUNET_free (addr);
   GNUNET_free (plugin_name);
   return ret;
@@ -1080,9 +1095,15 @@
 
   ctx.pos = exc;
   ctx.ret = GNUNET_OK;
+  ctx.counter_total = 0;
+  ctx.counter_added = 0;
   ctx.plugins_find = plugins_find;
   *hello = GNUNET_HELLO_create (pubkey, &add_address_to_hello, &ctx, 
friend_only);
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              _("HELLO URI contained %u addresses, added %u addresses\n"),
+              ctx.counter_total, ctx.counter_added);
+
   return ctx.ret;
 }
 

Modified: gnunet/src/hello/test_friend_hello.c
===================================================================
--- gnunet/src/hello/test_friend_hello.c        2014-06-03 09:29:04 UTC (rev 
33493)
+++ gnunet/src/hello/test_friend_hello.c        2014-06-03 09:34:15 UTC (rev 
33494)
@@ -25,7 +25,7 @@
 #include "platform.h"
 #include "gnunet_hello_lib.h"
 
-static size_t
+static ssize_t
 my_addr_gen (void *cls, size_t max, void *buf)
 {
   unsigned int *i = cls;
@@ -35,7 +35,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "DEBUG: my_addr_gen called with i = %d\n", *i);
   if (0 == *i)
-    return 0;
+    return GNUNET_SYSERR; /* Stop iteration */
   memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
   address.address = "address_information";
   address.transport_name = "test";

Modified: gnunet/src/hello/test_hello.c
===================================================================
--- gnunet/src/hello/test_hello.c       2014-06-03 09:29:04 UTC (rev 33493)
+++ gnunet/src/hello/test_hello.c       2014-06-03 09:34:15 UTC (rev 33494)
@@ -25,7 +25,7 @@
 #include "platform.h"
 #include "gnunet_hello_lib.h"
 
-static size_t
+static ssize_t
 my_addr_gen (void *cls, size_t max, void *buf)
 {
   unsigned int *i = cls;
@@ -35,7 +35,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "DEBUG: my_addr_gen called with i = %d\n", *i);
   if (0 == *i)
-    return 0;
+    return GNUNET_SYSERR;
   memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
   address.address = "address_information";
   address.transport_name = "test";

Modified: gnunet/src/include/gnunet_hello_lib.h
===================================================================
--- gnunet/src/include/gnunet_hello_lib.h       2014-06-03 09:29:04 UTC (rev 
33493)
+++ gnunet/src/include/gnunet_hello_lib.h       2014-06-03 09:34:15 UTC (rev 
33494)
@@ -231,10 +231,10 @@
  * @param cls closure
  * @param max maximum number of bytes that can be written to @a buf
  * @param buf where to write the address information
- * @return number of bytes written, 0 to signal the
+ * @return number of bytes written or 0, GNUNET_SYSERR to signal the
  *         end of the iteration.
  */
-typedef size_t
+typedef ssize_t
 (*GNUNET_HELLO_GenerateAddressListCallback) (void *cls,
                                              size_t max,
                                              void *buf);

Modified: gnunet/src/peerinfo/perf_peerinfo_api.c
===================================================================
--- gnunet/src/peerinfo/perf_peerinfo_api.c     2014-06-03 09:29:04 UTC (rev 
33493)
+++ gnunet/src/peerinfo/perf_peerinfo_api.c     2014-06-03 09:34:15 UTC (rev 
33494)
@@ -53,16 +53,16 @@
 }
 
 
-static size_t
+static ssize_t
 address_generator (void *cls, size_t max, void *buf)
 {
   size_t *agc = cls;
-  size_t ret;
+  ssize_t ret;
   char *caddress;
   struct GNUNET_HELLO_Address address;
 
   if (*agc == 0)
-    return 0;
+    return GNUNET_SYSERR; /* Done */
 
   GNUNET_asprintf (&caddress, "Address%d", *agc);
   address.peer = pid;

Modified: gnunet/src/peerinfo/test_peerinfo_api.c
===================================================================
--- gnunet/src/peerinfo/test_peerinfo_api.c     2014-06-03 09:29:04 UTC (rev 
33493)
+++ gnunet/src/peerinfo/test_peerinfo_api.c     2014-06-03 09:34:15 UTC (rev 
33494)
@@ -60,15 +60,15 @@
 }
 
 
-static size_t
+static ssize_t
 address_generator (void *cls, size_t max, void *buf)
 {
   size_t *agc = cls;
-  size_t ret;
+  ssize_t ret;
   struct GNUNET_HELLO_Address address;
 
   if (0 == *agc)
-    return 0;
+    return GNUNET_SYSERR; /* Done */
   memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
   address.address = "Address";
   address.transport_name = "peerinfotest";

Modified: gnunet/src/peerinfo/test_peerinfo_api_friend_only.c
===================================================================
--- gnunet/src/peerinfo/test_peerinfo_api_friend_only.c 2014-06-03 09:29:04 UTC 
(rev 33493)
+++ gnunet/src/peerinfo/test_peerinfo_api_friend_only.c 2014-06-03 09:34:15 UTC 
(rev 33494)
@@ -42,15 +42,15 @@
 
 static int global_ret;
 
-static size_t
+static ssize_t
 address_generator (void *cls, size_t max, void *buf)
 {
   size_t *agc = cls;
-  size_t ret;
+  ssize_t ret;
   struct GNUNET_HELLO_Address address;
 
   if (0 == *agc)
-    return 0;
+    return GNUNET_SYSERR; /* Done */
   memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
   address.address = "Address";
   address.transport_name = "peerinfotest";

Modified: gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c
===================================================================
--- gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c  2014-06-03 
09:29:04 UTC (rev 33493)
+++ gnunet/src/peerinfo/test_peerinfo_api_notify_friend_only.c  2014-06-03 
09:34:15 UTC (rev 33494)
@@ -1,22 +1,22 @@
 /*
-     This file is part of GNUnet.
-     (C) 2004, 2009 Christian Grothoff (and other contributing authors)
+ This file is part of GNUnet.
+ (C) 2004, 2009 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 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.
+ 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.
-*/
+ 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 peerinfo/test_peerinfo_api_notify_friend_only.c
@@ -42,7 +42,6 @@
 
 static const struct GNUNET_CONFIGURATION_Handle *mycfg;
 
-
 static int global_ret;
 
 /**
@@ -61,169 +60,164 @@
 
 GNUNET_SCHEDULER_TaskIdentifier timeout_task;
 
-
 static void
 end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-       timeout_task = GNUNET_SCHEDULER_NO_TASK;
-       GNUNET_break (0);
-       if (NULL != pnc_wo_fo)
-       {
-               GNUNET_PEERINFO_notify_cancel (pnc_wo_fo);
-               pnc_wo_fo = NULL;
-       }
-       if (NULL != pnc_w_fo)
-       {
-               GNUNET_PEERINFO_notify_cancel (pnc_w_fo);
-               pnc_w_fo = NULL;
-       }
-       if (NULL != h)
-       {
-               GNUNET_PEERINFO_disconnect (h);
-               h = NULL;
-       }
-       global_ret = 255;
+  timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  GNUNET_break(0);
+  if (NULL != pnc_wo_fo)
+  {
+    GNUNET_PEERINFO_notify_cancel (pnc_wo_fo);
+    pnc_wo_fo = NULL;
+  }
+  if (NULL != pnc_w_fo)
+  {
+    GNUNET_PEERINFO_notify_cancel (pnc_w_fo);
+    pnc_w_fo = NULL;
+  }
+  if (NULL != h)
+  {
+    GNUNET_PEERINFO_disconnect (h);
+    h = NULL;
+  }
+  global_ret = 255;
 }
 
 static void
 done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-               if (NULL != pnc_w_fo)
-               GNUNET_PEERINFO_notify_cancel (pnc_w_fo);
-               pnc_w_fo = NULL;
-               if (NULL != pnc_wo_fo)
-                       GNUNET_PEERINFO_notify_cancel (pnc_wo_fo);
-               pnc_wo_fo = NULL;
-               GNUNET_PEERINFO_disconnect (h);
-               h = NULL;
+  if (NULL != pnc_w_fo)
+    GNUNET_PEERINFO_notify_cancel (pnc_w_fo);
+  pnc_w_fo = NULL;
+  if (NULL != pnc_wo_fo)
+    GNUNET_PEERINFO_notify_cancel (pnc_wo_fo);
+  pnc_wo_fo = NULL;
+  GNUNET_PEERINFO_disconnect (h);
+  h = NULL;
 
-               if (GNUNET_SCHEDULER_NO_TASK != timeout_task)
-               {
-                               GNUNET_SCHEDULER_cancel (timeout_task);
-                               timeout_task = GNUNET_SCHEDULER_NO_TASK;
-               }
+  if (GNUNET_SCHEDULER_NO_TASK != timeout_task)
+  {
+    GNUNET_SCHEDULER_cancel (timeout_task);
+    timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  }
 
-               if ((GNUNET_YES == res_cb_w_fo) && (GNUNET_NO == res_cb_wo_fo))
-                       global_ret = 0;
-               else
-                       GNUNET_break (0);
+  if ((GNUNET_YES == res_cb_w_fo) && (GNUNET_NO == res_cb_wo_fo))
+    global_ret = 0;
+  else
+    GNUNET_break(0);
 }
 
-static size_t
+static ssize_t
 address_generator (void *cls, size_t max, void *buf)
 {
   size_t *agc = cls;
-  size_t ret;
+  ssize_t ret;
   struct GNUNET_HELLO_Address address;
 
   if (0 == *agc)
-    return 0;
-  memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
+    return GNUNET_SYSERR; /* Done */
+  memset (&address.peer, 0, sizeof(struct GNUNET_PeerIdentity));
   address.address = "Address";
   address.transport_name = "peerinfotest";
   address.address_length = *agc;
-  ret =
-      GNUNET_HELLO_add_address (&address,
-                                GNUNET_TIME_relative_to_absolute
-                                (GNUNET_TIME_UNIT_HOURS), buf, max);
+  ret = GNUNET_HELLO_add_address (&address,
+      GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_HOURS), buf, max);
   (*agc)--;
   return ret;
 }
 
 static void
 process_w_fo (void *cls, const struct GNUNET_PeerIdentity *peer,
-         const struct GNUNET_HELLO_Message *hello, const char *err_msg)
+    const struct GNUNET_HELLO_Message *hello, const char *err_msg)
 {
-  if (err_msg != NULL)
+  if (err_msg != NULL )
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _("Error in communication with PEERINFO service\n"));
-    GNUNET_SCHEDULER_add_now(&done, NULL);
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
+        _("Error in communication with PEERINFO service\n"));
+    GNUNET_SCHEDULER_add_now (&done, NULL );
     return;
   }
 
   if (NULL != peer)
   {
-               GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Received callback for peer 
`%s' %s HELLO\n",
-                               GNUNET_i2s (peer),
-                               (NULL != hello) ? "with" : "without");
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO,
+        "Received callback for peer `%s' %s HELLO\n", GNUNET_i2s (peer),
+        (NULL != hello) ? "with" : "without");
 
-               if (NULL == hello)
-                               return;
+    if (NULL == hello)
+      return;
 
-               if (GNUNET_NO == GNUNET_HELLO_is_friend_only(hello))
-               {
-                               GNUNET_break (0);
-                               return;
-               }
+    if (GNUNET_NO == GNUNET_HELLO_is_friend_only (hello))
+    {
+      GNUNET_break(0);
+      return;
+    }
 
-               GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Received %s HELLO for peer 
`%s'\n",
-                               (GNUNET_YES == GNUNET_HELLO_is_friend_only 
(hello)) ? "friend only" : "public",
-                               GNUNET_i2s (peer));
-               if (0 == memcmp (&pid, peer, sizeof (pid)))
-               {
-                               res_cb_w_fo = GNUNET_YES;
-                               GNUNET_SCHEDULER_add_now(&done, NULL);
-               }
-                       return;
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received %s HELLO for peer `%s'\n",
+        (GNUNET_YES == GNUNET_HELLO_is_friend_only (hello)) ? "friend only" : 
"public",
+        GNUNET_i2s (peer));
+    if (0 == memcmp (&pid, peer, sizeof(pid)))
+    {
+      res_cb_w_fo = GNUNET_YES;
+      GNUNET_SCHEDULER_add_now (&done, NULL );
+    }
+    return;
   }
 }
 
 static void
 process_wo_fo (void *cls, const struct GNUNET_PeerIdentity *peer,
-         const struct GNUNET_HELLO_Message *hello, const char *err_msg)
+    const struct GNUNET_HELLO_Message *hello, const char *err_msg)
 {
-  if (err_msg != NULL)
+  if (err_msg != NULL )
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _("Error in communication with PEERINFO service\n"));
-    GNUNET_SCHEDULER_add_now(&done, NULL);
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
+        _("Error in communication with PEERINFO service\n"));
+    GNUNET_SCHEDULER_add_now (&done, NULL );
     return;
   }
 
   if (NULL != peer)
   {
-               GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Received callback for peer 
`%s' %s HELLO\n",
-                               GNUNET_i2s (peer),
-                               (NULL != hello) ? "with" : "without");
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO,
+        "Received callback for peer `%s' %s HELLO\n", GNUNET_i2s (peer),
+        (NULL != hello) ? "with" : "without");
 
-               if (NULL == hello)
-                               return;
+    if (NULL == hello)
+      return;
 
-               if (GNUNET_YES == GNUNET_HELLO_is_friend_only(hello))
-               {
-                               GNUNET_break (0);
-                               return;
-               }
+    if (GNUNET_YES == GNUNET_HELLO_is_friend_only (hello))
+    {
+      GNUNET_break(0);
+      return;
+    }
 
-               GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Received %s HELLO for peer 
`%s'\n",
-                               (GNUNET_YES == GNUNET_HELLO_is_friend_only 
(hello)) ? "friend only" : "public",
-                               GNUNET_i2s (peer));
-               if (0 == memcmp (&pid, peer, sizeof (pid)))
-               {
-                               GNUNET_break (0);
-                               res_cb_wo_fo = GNUNET_YES;
-               }
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received %s HELLO for peer `%s'\n",
+        (GNUNET_YES == GNUNET_HELLO_is_friend_only (hello)) ? "friend only" : 
"public",
+        GNUNET_i2s (peer));
+    if (0 == memcmp (&pid, peer, sizeof(pid)))
+    {
+      GNUNET_break(0);
+      res_cb_wo_fo = GNUNET_YES;
+    }
   }
 }
 
 static void
 add_peer_done (void *cls, const char *emsg)
 {
-       if (NULL == emsg)
-       {
-                       return;
-       }
-       else
-       {
-                       GNUNET_break (0);
-                       GNUNET_SCHEDULER_cancel (timeout_task);
-                       timeout_task = GNUNET_SCHEDULER_add_now (&end_badly, 
NULL);
-       }
+  if (NULL == emsg)
+  {
+    return;
+  }
+  else
+  {
+    GNUNET_break(0);
+    GNUNET_SCHEDULER_cancel (timeout_task);
+    timeout_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL );
+  }
 }
 
-
-
 static void
 add_peer ()
 {
@@ -231,40 +225,36 @@
   size_t agc;
 
   agc = 2;
-  memset (&pid, 32, sizeof (pid));
-  h2 = GNUNET_HELLO_create (&pid.public_key, &address_generator, &agc, 
GNUNET_YES);
-  GNUNET_PEERINFO_add_peer (h, h2, &add_peer_done, NULL);
-  GNUNET_free (h2);
+  memset (&pid, 32, sizeof(pid));
+  h2 = GNUNET_HELLO_create (&pid.public_key, &address_generator, &agc,
+      GNUNET_YES);
+  GNUNET_PEERINFO_add_peer (h, h2, &add_peer_done, NULL );
+  GNUNET_free(h2);
 
 }
 
-
-
 static void
-run (void *cls,
-     const struct GNUNET_CONFIGURATION_Handle *cfg,
-     struct GNUNET_TESTING_Peer *peer)
+run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
+    struct GNUNET_TESTING_Peer *peer)
 {
-       timeout_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
-       mycfg = cfg;
-       pnc_w_fo = GNUNET_PEERINFO_notify (mycfg, GNUNET_YES, &process_w_fo, 
NULL);
-       pnc_wo_fo = GNUNET_PEERINFO_notify (mycfg, GNUNET_NO, &process_wo_fo, 
NULL);
+  timeout_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL );
+  mycfg = cfg;
+  pnc_w_fo = GNUNET_PEERINFO_notify (mycfg, GNUNET_YES, &process_w_fo, NULL );
+  pnc_wo_fo = GNUNET_PEERINFO_notify (mycfg, GNUNET_NO, &process_wo_fo, NULL );
   h = GNUNET_PEERINFO_connect (cfg);
-  GNUNET_assert (NULL != h);
+  GNUNET_assert(NULL != h);
   add_peer ();
 }
 
-
 int
 main (int argc, char *argv[])
 {
-       res_cb_w_fo = GNUNET_NO;
-       res_cb_wo_fo = GNUNET_NO;
+  res_cb_w_fo = GNUNET_NO;
+  res_cb_wo_fo = GNUNET_NO;
   global_ret = 3;
-  if (0 != GNUNET_TESTING_service_run ("test-peerinfo-api-friend-only",
-                                      "peerinfo",
-                                      "test_peerinfo_api_data.conf",
-                                      &run, NULL))
+  if (0
+      != GNUNET_TESTING_service_run ("test-peerinfo-api-friend-only",
+          "peerinfo", "test_peerinfo_api_data.conf", &run, NULL ))
     return 1;
   return global_ret;
 }

Modified: gnunet/src/peerinfo-tool/gnunet-peerinfo.c
===================================================================
--- gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2014-06-03 09:29:04 UTC (rev 
33493)
+++ gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2014-06-03 09:34:15 UTC (rev 
33494)
@@ -22,6 +22,7 @@
  * @file peerinfo-tool/gnunet-peerinfo.c
  * @brief Print information about other known peers.
  * @author Christian Grothoff
+ * @author Matthias Wachs
  */
 #include "platform.h"
 #include "gnunet_crypto_lib.h"

Modified: gnunet/src/transport/gnunet-service-transport_hello.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_hello.c       2014-06-03 
09:29:04 UTC (rev 33493)
+++ gnunet/src/transport/gnunet-service-transport_hello.c       2014-06-03 
09:34:15 UTC (rev 33494)
@@ -133,17 +133,18 @@
  * @param cls the 'struct GeneratorContext'
  * @param max maximum number of bytes left
  * @param buf where to write the address
+ * @return bytes written or GNUNET_SYSERR to signal the
+ *         end of the iteration.
  */
-static size_t
+static ssize_t
 address_generator (void *cls, size_t max, void *buf)
 {
   struct GeneratorContext *gc = cls;
-  size_t ret;
+  ssize_t ret;
 
   if (NULL == gc->addr_pos)
-    return 0;
-  ret =
-      GNUNET_HELLO_add_address (gc->addr_pos->address, gc->expiration, buf,
+    return GNUNET_SYSERR; /* Done */
+  ret = GNUNET_HELLO_add_address (gc->addr_pos->address, gc->expiration, buf,
                                 max);
   gc->addr_pos = gc->addr_pos->next;
   return ret;

Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c  2014-06-03 
09:29:04 UTC (rev 33493)
+++ gnunet/src/transport/gnunet-service-transport_validation.c  2014-06-03 
09:34:15 UTC (rev 33494)
@@ -1280,16 +1280,16 @@
  * @param cls the 'struct ValidationEntry' with the validated address
  * @param max space in buf
  * @param buf where to add the address
- * @return number of bytes written, 0 to signal the
+ * @return number of bytes written, GNUNET_SYSERR to signal the
  *         end of the iteration.
  */
-static size_t
+static ssize_t
 add_valid_peer_address (void *cls, size_t max, void *buf)
 {
   struct ValidationEntry *ve = cls;
 
   if (GNUNET_YES == ve->copied)
-    return 0;                   /* terminate */
+    return GNUNET_SYSERR; /* Done */
   ve->copied = GNUNET_YES;
   return GNUNET_HELLO_add_address (ve->address, ve->valid_until, buf, max);
 }




reply via email to

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