aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-05-03 10:56:49 -0400
committerNick Mathewson <nickm@torproject.org>2018-05-03 12:02:10 -0400
commit83137275a77eedbf177fbdb298c89a346abe2243 (patch)
tree62b694baad15a6fee60756909179c791ba9b58e4
parent1d16b7124f8c5cdcd04599aac62fb903862acdee (diff)
downloadtor-83137275a77eedbf177fbdb298c89a346abe2243.tar.gz
tor-83137275a77eedbf177fbdb298c89a346abe2243.zip
Add update_current_time() calls to periodic and event-driven callbacks
This is part of 26009, where we're going to keep track of the current time and its jumps without having to do so in second_elapsed_callback.
-rw-r--r--src/or/connection.c3
-rw-r--r--src/or/main.c1
-rw-r--r--src/or/periodic.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index c2673ade16..df36d42116 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -3439,7 +3439,7 @@ int
connection_handle_read(connection_t *conn)
{
int res;
-
+ update_current_time(time(NULL));
res = connection_handle_read_impl(conn);
return res;
}
@@ -3982,6 +3982,7 @@ int
connection_handle_write(connection_t *conn, int force)
{
int res;
+ update_current_time(time(NULL));
conn->in_connection_handle_write = 1;
res = connection_handle_write_impl(conn, force);
conn->in_connection_handle_write = 0;
diff --git a/src/or/main.c b/src/or/main.c
index 6ecc340a91..d773c8e29b 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -3047,6 +3047,7 @@ signal_callback(evutil_socket_t fd, short events, void *arg)
(void)fd;
(void)events;
+ update_current_time(time(NULL));
process_signal(sig);
}
diff --git a/src/or/periodic.c b/src/or/periodic.c
index 76aa418b35..92fa677f8f 100644
--- a/src/or/periodic.c
+++ b/src/or/periodic.c
@@ -14,6 +14,7 @@
#include "or.h"
#include "compat_libevent.h"
#include "config.h"
+#include "main.h"
#include "periodic.h"
/** We disable any interval greater than this number of seconds, on the
@@ -48,6 +49,7 @@ periodic_event_dispatch(mainloop_event_t *ev, void *data)
}
time_t now = time(NULL);
+ update_current_time(now);
const or_options_t *options = get_options();
// log_debug(LD_GENERAL, "Dispatching %s", event->name);
int r = event->fn(now, options);