aboutsummaryrefslogtreecommitdiff
path: root/src/or/networkstatus.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-10-30 15:17:07 +0000
committerNick Mathewson <nickm@torproject.org>2007-10-30 15:17:07 +0000
commitc0c2001a5b8fd3907c7ba93eccbd536786f57594 (patch)
treec7aa35ecb0eab620cbd592451600347410da4dee /src/or/networkstatus.c
parent7709fb7143cc272c04f9de3970e4ac0fe3a000d6 (diff)
downloadtor-c0c2001a5b8fd3907c7ba93eccbd536786f57594.tar
tor-c0c2001a5b8fd3907c7ba93eccbd536786f57594.tar.gz
r16279@catbus: nickm | 2007-10-30 11:14:29 -0400
Improved skew reporting: "You are 365 days in the duture" is more useful than "You are 525600 minutes in the future". Also, when we get something that proves we are at least an hour in the past, tell the controller "CLOCK_SKEW MIN_SKEW=-3600" rather than just "CLOCK_SKEW" svn:r12283
Diffstat (limited to 'src/or/networkstatus.c')
-rw-r--r--src/or/networkstatus.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index bbcc0ff6d..711318311 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -559,13 +559,16 @@ router_set_networkstatus_v2(const char *s, time_t arrived_at,
format_iso_time(published, ns->published_on);
if (ns->published_on > now + NETWORKSTATUS_ALLOW_SKEW) {
- log_warn(LD_GENERAL, "Network status from %s was published in the future "
- "(%s GMT). Check your system clock! "
+ char dbuf[64];
+ long delta = now - ns->published_on;
+ format_time_interval(dbuf, sizeof(dbuf), delta);
+ log_warn(LD_GENERAL, "Network status from %s was published %s in the "
+ "future (%s GMT). Check your time and date settings! "
"Not caching.",
- source_desc, published);
+ source_desc, dbuf, published);
control_event_general_status(LOG_WARN,
- "CLOCK_SKEW SOURCE=NETWORKSTATUS:%s:%d",
- ns->source_address, ns->source_dirport);
+ "CLOCK_SKEW MIN_SKEW=%ld SOURCE=NETWORKSTATUS:%s:%d",
+ delta, ns->source_address, ns->source_dirport);
skewed = 1;
}
@@ -1329,12 +1332,17 @@ networkstatus_set_current_consensus(const char *consensus, int from_cache,
current_consensus->valid_after);
if (ftime_definitely_before(now, current_consensus->valid_after)) {
- char buf[ISO_TIME_LEN+1];
- format_iso_time(buf, current_consensus->valid_after);
- log_warn(LD_GENERAL, "Consensus network status document was published "
- "at some time in the future (%s GMT). Check your time and date "
- "settings!", buf);
- control_event_general_status(LOG_WARN, "CLOCK_SKEW SOURCE=CONSENSUS");
+ char tbuf[ISO_TIME_LEN+1];
+ char dbuf[64];
+ long delta = now - current_consensus->valid_after;
+ format_iso_time(tbuf, current_consensus->valid_after);
+ format_time_interval(dbuf, sizeof(dbuf), delta);
+ log_warn(LD_GENERAL, "Our clock is %s behind the time published in the "
+ "consensus network status document (%s GMT). Tor needs an "
+ "accurate clock to work correctly. Please check your time and "
+ "date settings!", dbuf, tbuf);
+ control_event_general_status(LOG_WARN,
+ "CLOCK_SKEW MIN_SKEW=%ld SOURCE=CONSENSUS", delta);
}
router_dir_info_changed();