From 1946e3b8873d682d2adc7ce0b2fb30ca38eee943 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 25 Jan 2017 20:38:18 +0100 Subject: [PATCH] preparations for keepalives --- src/cadet/gnunet-service-cadet-new.c | 17 +++++++++++++++++ src/cadet/gnunet-service-cadet-new.h | 5 +++++ src/cadet/gnunet-service-cadet-new_tunnels.c | 2 ++ 3 files changed, 24 insertions(+) diff --git a/src/cadet/gnunet-service-cadet-new.c b/src/cadet/gnunet-service-cadet-new.c index 97489f3fd..af5ac13ae 100644 --- a/src/cadet/gnunet-service-cadet-new.c +++ b/src/cadet/gnunet-service-cadet-new.c @@ -183,6 +183,11 @@ unsigned long long ratchet_messages; */ struct GNUNET_TIME_Relative ratchet_time; +/** + * How frequently do we send KEEPALIVE messages on idle connections? + */ +struct GNUNET_TIME_Relative keepalive_period; + /** * Send a message to a client. @@ -1335,6 +1340,18 @@ run (void *cls, "need delay value"); ratchet_time = GNUNET_TIME_UNIT_HOURS; } + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (c, + "CADET", + "REFRESHC_CONNECTION_TIME", + &keepalive_period)) + { + GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_WARNING, + "CADET", + "REFRESH_CONNECTION_TIME", + "need delay value"); + keepalive_period = GNUNET_TIME_UNIT_MINUTES; + } my_private_key = GNUNET_CRYPTO_eddsa_key_create_from_configuration (c); if (NULL == my_private_key) diff --git a/src/cadet/gnunet-service-cadet-new.h b/src/cadet/gnunet-service-cadet-new.h index 4a76c578b..721044ac4 100644 --- a/src/cadet/gnunet-service-cadet-new.h +++ b/src/cadet/gnunet-service-cadet-new.h @@ -225,6 +225,11 @@ extern unsigned long long ratchet_messages; */ extern struct GNUNET_TIME_Relative ratchet_time; +/** + * How frequently do we send KEEPALIVE messages on idle connections? + */ +extern struct GNUNET_TIME_Relative keepalive_period; + /** * Signal that shutdown is happening: prevent recovery measures. */ diff --git a/src/cadet/gnunet-service-cadet-new_tunnels.c b/src/cadet/gnunet-service-cadet-new_tunnels.c index fd8335486..3420c00db 100644 --- a/src/cadet/gnunet-service-cadet-new_tunnels.c +++ b/src/cadet/gnunet-service-cadet-new_tunnels.c @@ -24,6 +24,8 @@ * @author Christian Grothoff * * FIXME: + * - implement keepalive + * - implement rekeying * - check KX estate machine -- make sure it is never stuck! * - clean up KX logic, including adding sender authentication * - implement connection management (evaluate, kill old ones, -- 2.25.1