From 5b03c7ba6d899e19e8f3e0a58bd5df8bb7bbf1d0 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 2 Aug 2017 13:20:59 -0400 Subject: Fix check_expired_networkstatus_callback() if condition The condition was always true meaning that we would reconsider updating our directory information every 2 minutes. If valid_until is 6am today, then now - 24h == 1pm yesterday which means that "valid_until < (now - 24h)" is false. But at 6:01am tomorrow, "valid_until < (now - 24h)" becomes true which is that point that we shouldn't trust the consensus anymore. Fixes #23091 Signed-off-by: David Goulet --- src/or/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/or/main.c') diff --git a/src/or/main.c b/src/or/main.c index dc23184961..670d67cda1 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1713,7 +1713,7 @@ check_expired_networkstatus_callback(time_t now, const or_options_t *options) * networkstatus_get_reasonably_live_consensus(), but that value is way * way too high. Arma: is the bridge issue there resolved yet? -NM */ #define NS_EXPIRY_SLOP (24*60*60) - if (ns && ns->valid_until < now+NS_EXPIRY_SLOP && + if (ns && ns->valid_until < (now - NS_EXPIRY_SLOP) && router_have_minimum_dir_info()) { router_dir_info_changed(); } -- cgit v1.2.3-54-g00ecf