Make trusted clock skew a bootstrap warning

Make clock skew events based on trusted sources produce a bootstrap
warning so controllers can more easily alert users about clock skew
problems.
This commit is contained in:
Taylor Yu 2017-09-13 14:47:48 -05:00
parent 818332e7f1
commit 449bb2351e

View File

@ -5221,7 +5221,7 @@ clock_skew_warning(const connection_t *conn, long apparent_skew, int trusted,
const char *source)
{
char dbuf[64];
char *ext_source = NULL;
char *ext_source = NULL, *warn = NULL;
format_time_interval(dbuf, sizeof(dbuf), apparent_skew);
if (conn)
tor_asprintf(&ext_source, "%s:%s:%d", source, conn->address, conn->port);
@ -5235,9 +5235,14 @@ clock_skew_warning(const connection_t *conn, long apparent_skew, int trusted,
apparent_skew > 0 ? "ahead" : "behind", dbuf,
apparent_skew > 0 ? "behind" : "ahead",
(!conn || trusted) ? "" : ", or they are sending us the wrong time");
if (trusted)
if (trusted) {
control_event_general_status(LOG_WARN, "CLOCK_SKEW SKEW=%ld SOURCE=%s",
apparent_skew, ext_source);
tor_asprintf(&warn, "Clock skew %ld in %s from %s", apparent_skew,
received, source);
control_event_bootstrap_problem(warn, "CLOCK_SKEW", conn, 1);
}
tor_free(warn);
tor_free(ext_source);
}