[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33494 - in gnunet/src: hello include peerinfo peerinfo-tool transport,
gnunet <=