From c01972f2300865e9750092d566da5b08a05c7b4f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 13 Aug 2011 21:19:05 +0000 Subject: [PATCH] HELLOs --- src/transport/gnunet-service-transport-new.c | 32 +++++++++++++++---- .../gnunet-service-transport_hello.c | 8 +---- .../gnunet-service-transport_hello.h | 8 +++++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/transport/gnunet-service-transport-new.c b/src/transport/gnunet-service-transport-new.c index f34450319..d0ad2fbad 100644 --- a/src/transport/gnunet-service-transport-new.c +++ b/src/transport/gnunet-service-transport-new.c @@ -76,6 +76,30 @@ struct GNUNET_CRYPTO_RsaPrivateKey *GST_my_private_key; struct GNUNET_ATS_Handle *GST_ats; +/** + * Transmit our HELLO message to the given (connected) neighbour. + * + * @param cls the 'HELLO' message + * @param target a connected neighbour + * @param ats performance information (unused) + * @param ats_count number of records in ats (unused) + */ +static void +transmit_our_hello (void *cls, + const struct GNUNET_PeerIdentity *target, + const struct GNUNET_TRANSPORT_ATS_Information *ats, + uint32_t ats_count) +{ + const struct GNUNET_MessageHeader *hello = cls; + + GST_neighbours_send (target, + (const char*) hello, + ntohs (hello->size), + GST_HELLO_ADDRESS_EXPIRATION, + NULL, NULL); +} + + /** * My HELLO has changed. Tell everyone who should know. * @@ -87,12 +111,8 @@ process_hello_update (void *cls, const struct GNUNET_MessageHeader *hello) { GST_clients_broadcast (hello, GNUNET_NO); - GNUNET_break (0); // FIXME -#if 0 - GNUNET_CONTAINER_multihashmap_iterate (neighbours, - &transmit_our_hello_if_pong, - NULL); -#endif + GST_neighbours_iterate (&transmit_our_hello, + (void*) hello); } diff --git a/src/transport/gnunet-service-transport_hello.c b/src/transport/gnunet-service-transport_hello.c index cf7459769..f05c0836a 100644 --- a/src/transport/gnunet-service-transport_hello.c +++ b/src/transport/gnunet-service-transport_hello.c @@ -31,12 +31,6 @@ #include "gnunet-service-transport.h" #include "gnunet-service-transport_plugins.h" -/** - * After how long do we expire an address in a HELLO that we just - * validated? This value is also used for our own addresses when we - * create a HELLO. - */ -#define HELLO_ADDRESS_EXPIRATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 12) /** * How often do we refresh our HELLO (due to expiration concerns)? @@ -172,7 +166,7 @@ refresh_hello_task (void *cls, hello_task = GNUNET_SCHEDULER_NO_TASK; gc.addr_pos = oal_head; - gc.expiration = GNUNET_TIME_relative_to_absolute (HELLO_ADDRESS_EXPIRATION); + gc.expiration = GNUNET_TIME_relative_to_absolute (GST_HELLO_ADDRESS_EXPIRATION); GNUNET_free (our_hello); our_hello = GNUNET_HELLO_create (&GST_my_public_key, &address_generator, diff --git a/src/transport/gnunet-service-transport_hello.h b/src/transport/gnunet-service-transport_hello.h index d34162841..7b86d62d0 100644 --- a/src/transport/gnunet-service-transport_hello.h +++ b/src/transport/gnunet-service-transport_hello.h @@ -31,6 +31,14 @@ #include "gnunet_util_lib.h" +/** + * After how long do we expire an address in a HELLO that we just + * validated? This value is also used for our own addresses when we + * create a HELLO. + */ +#define GST_HELLO_ADDRESS_EXPIRATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 12) + + /** * Signature of a function to call whenever our hello changes. * -- 2.25.1