diff options
Diffstat (limited to 'src/lib/wallclock/approx_time.c')
-rw-r--r-- | src/lib/wallclock/approx_time.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/lib/wallclock/approx_time.c b/src/lib/wallclock/approx_time.c index ee498702d5..c815f20e51 100644 --- a/src/lib/wallclock/approx_time.c +++ b/src/lib/wallclock/approx_time.c @@ -1,6 +1,6 @@ /* Copyright (c) 2003, Roger Dingledine * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. - * Copyright (c) 2007-2019, The Tor Project, Inc. */ + * Copyright (c) 2007-2020, The Tor Project, Inc. */ /* See LICENSE for licensing information */ /** @@ -9,7 +9,9 @@ **/ #include "orconfig.h" +#include "lib/subsys/subsys.h" #include "lib/wallclock/approx_time.h" +#include "lib/wallclock/wallclock_sys.h" /* ===== * Cached time @@ -41,3 +43,26 @@ update_approx_time(time_t now) cached_approx_time = now; } #endif /* !defined(TIME_IS_FAST) */ + +/** + * Initialize the "wallclock" subsystem by setting the current cached time. + **/ +static int +subsys_wallclock_initialize(void) +{ + update_approx_time(time(NULL)); + return 0; +} + +/** + * Subsystem function table describing the "wallclock" subsystem. + **/ +const subsys_fns_t sys_wallclock = { + .name = "wallclock", + SUBSYS_DECLARE_LOCATION(), + .supported = true, + /* Approximate time is a diagnostic feature, we want it to init right after + * low-level error handling. */ + .level = -98, + .initialize = subsys_wallclock_initialize, +}; |