From 1ae3aae35193dce25e5534b12a46011ec7912bb4 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 24 Aug 2014 16:07:50 +0200 Subject: Use simple int64_t timestamps in ms instead of timespecs --- src/protocols/ec25519_fhmqvc/ec25519_fhmqvc.c | 2 +- src/protocols/ec25519_fhmqvc/handshake.c | 14 +++++++------- src/protocols/ec25519_fhmqvc/handshake.h | 8 ++++---- src/protocols/ec25519_fhmqvc/state.c | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'src/protocols') diff --git a/src/protocols/ec25519_fhmqvc/ec25519_fhmqvc.c b/src/protocols/ec25519_fhmqvc/ec25519_fhmqvc.c index 080c555..8528074 100644 --- a/src/protocols/ec25519_fhmqvc/ec25519_fhmqvc.c +++ b/src/protocols/ec25519_fhmqvc/ec25519_fhmqvc.c @@ -172,7 +172,7 @@ static void session_send(fastd_peer_t *peer, fastd_buffer_t buffer, protocol_ses } fastd_send(peer->sock, &peer->local_address, &peer->address, peer, send_buffer, stat_size); - peer->keepalive_timeout = fastd_in_seconds(KEEPALIVE_TIMEOUT); + peer->keepalive_timeout = ctx.now + KEEPALIVE_TIMEOUT; } /** Encrypts and sends a packet to a peer */ diff --git a/src/protocols/ec25519_fhmqvc/handshake.c b/src/protocols/ec25519_fhmqvc/handshake.c index 8f468cd..94aa338 100644 --- a/src/protocols/ec25519_fhmqvc/handshake.c +++ b/src/protocols/ec25519_fhmqvc/handshake.c @@ -177,7 +177,7 @@ static bool establish(fastd_peer_t *peer, const fastd_method_info_t *method, fas return false; } - peer->establish_handshake_timeout = fastd_in_seconds(MIN_HANDSHAKE_INTERVAL); + peer->establish_handshake_timeout = ctx.now + MIN_HANDSHAKE_INTERVAL; fastd_peer_seen(peer); fastd_peer_set_established(peer); @@ -567,8 +567,8 @@ static fastd_peer_t * add_dynamic(fastd_socket_t *sock, const fastd_peer_address /** Is called when a handshake from a dynamic peer is received */ static bool handle_dynamic(fastd_socket_t *sock, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *remote_addr, fastd_peer_t *peer, const fastd_handshake_t *handshake, const fastd_method_info_t *method) { - if (handshake->type > 2 || !fastd_timed_out(&peer->verify_timeout)) - return !fastd_timed_out(&peer->verify_valid_timeout); + if (handshake->type > 2 || !fastd_timed_out(peer->verify_timeout)) + return !fastd_timed_out(peer->verify_valid_timeout); verify_data_t verify_data; memset(&verify_data, 0, sizeof(verify_data)); @@ -597,7 +597,7 @@ void fastd_protocol_ec25519_fhmqvc_handle_verify_return(fastd_peer_t *peer, fast const verify_data_t *data = protocol_data; - peer->last_handshake_response_timeout = fastd_in_seconds(MIN_HANDSHAKE_INTERVAL); + peer->last_handshake_response_timeout = ctx.now + MIN_HANDSHAKE_INTERVAL; peer->last_handshake_response_address = *remote_addr; respond_handshake(sock, local_addr, remote_addr, peer, &data->peer_handshake_key, method); } @@ -652,7 +652,7 @@ void fastd_protocol_ec25519_fhmqvc_handshake_handle(fastd_socket_t *sock, const return; } - if (!fastd_timed_out(&peer->establish_handshake_timeout)) { + if (!fastd_timed_out(peer->establish_handshake_timeout)) { pr_debug("received repeated handshakes from %P[%I], ignoring", peer, remote_addr); return; } @@ -675,7 +675,7 @@ void fastd_protocol_ec25519_fhmqvc_handshake_handle(fastd_socket_t *sock, const memcpy(&peer_handshake_key, handshake->records[RECORD_SENDER_HANDSHAKE_KEY].data, PUBLICKEYBYTES); if (handshake->type == 1) { - if (!fastd_timed_out(&peer->last_handshake_response_timeout) + if (!fastd_timed_out(peer->last_handshake_response_timeout) && fastd_peer_address_equal(remote_addr, &peer->last_handshake_response_address)) { pr_debug("not responding to repeated handshake from %P[%I]", peer, remote_addr); return; @@ -683,7 +683,7 @@ void fastd_protocol_ec25519_fhmqvc_handshake_handle(fastd_socket_t *sock, const pr_verbose("received handshake from %P[%I]%s%s", peer, remote_addr, handshake->peer_version ? " using fastd " : "", handshake->peer_version ?: ""); - peer->last_handshake_response_timeout = fastd_in_seconds(MIN_HANDSHAKE_INTERVAL); + peer->last_handshake_response_timeout = ctx.now + MIN_HANDSHAKE_INTERVAL; peer->last_handshake_response_address = *remote_addr; respond_handshake(sock, local_addr, remote_addr, peer, &peer_handshake_key, method); return; diff --git a/src/protocols/ec25519_fhmqvc/handshake.h b/src/protocols/ec25519_fhmqvc/handshake.h index a05e542..7779858 100644 --- a/src/protocols/ec25519_fhmqvc/handshake.h +++ b/src/protocols/ec25519_fhmqvc/handshake.h @@ -50,8 +50,8 @@ typedef struct handshake_key { */ uint64_t serial; - struct timespec preferred_till; /**< Specifies how long this keypair will be used for new handshakes */ - struct timespec valid_till; /**< Specifies how long handshakes using this keypair will be answered */ + fastd_timeout_t preferred_till; /**< Specifies how long this keypair will be used for new handshakes */ + fastd_timeout_t valid_till; /**< Specifies how long handshakes using this keypair will be answered */ keypair_t key; /**< The actual keypair */ } handshake_key_t; @@ -69,10 +69,10 @@ struct fastd_protocol_state { /** Checks if a handshake keypair is currently valid */ static inline bool is_handshake_key_valid(const handshake_key_t *handshake_key) { - return !fastd_timed_out(&handshake_key->valid_till); + return !fastd_timed_out(handshake_key->valid_till); } /** Checks if a handshake keypair is currently peferred */ static inline bool is_handshake_key_preferred(const handshake_key_t *handshake_key) { - return !fastd_timed_out(&handshake_key->preferred_till); + return !fastd_timed_out(handshake_key->preferred_till); } diff --git a/src/protocols/ec25519_fhmqvc/state.c b/src/protocols/ec25519_fhmqvc/state.c index d4a2a0e..79bb6e2 100644 --- a/src/protocols/ec25519_fhmqvc/state.c +++ b/src/protocols/ec25519_fhmqvc/state.c @@ -72,8 +72,8 @@ void fastd_protocol_ec25519_fhmqvc_maintenance(void) { new_handshake_key(&ctx.protocol_state->handshake_key.key); - ctx.protocol_state->handshake_key.preferred_till = fastd_in_seconds(15); - ctx.protocol_state->handshake_key.valid_till = fastd_in_seconds(30); + ctx.protocol_state->handshake_key.preferred_till = ctx.now + 15000; + ctx.protocol_state->handshake_key.valid_till = ctx.now + 30000; } } -- cgit v1.2.3