mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 13:43:47 +01:00
Sebastian's Changes to #1074
Fixes some small mistakes with AltF4's #1074 fix
This commit is contained in:
parent
b8bef61a8f
commit
82023f6a1e
@ -44,8 +44,9 @@ uint64_t stats_n_destroy_cells_processed = 0;
|
||||
uint64_t stats_n_versions_cells_processed = 0;
|
||||
/** How many CELL_NETINFO cells have we received, ever? */
|
||||
uint64_t stats_n_netinfo_cells_processed = 0;
|
||||
/** Have we received skew info from a NETINFO cell from a trusted dir, ever? */
|
||||
static int received_skew_from_trusted_dir = 0;
|
||||
/** Have we received a NETINFO cell from a trusted dir, ever? Used
|
||||
* to decide what to do about time skew. */
|
||||
static int received_netinfo_from_trusted_dir = 0;
|
||||
|
||||
/* These are the main functions for processing cells */
|
||||
static void command_process_create_cell(cell_t *cell, or_connection_t *conn);
|
||||
@ -620,20 +621,15 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn)
|
||||
|
||||
/* Act on apparent skew. */
|
||||
/** Warn when we get a netinfo skew with at least this value.
|
||||
Ignore if we've already recieved skew info from a trusted dir */
|
||||
Ignore if we've already received skew info from a trusted dir */
|
||||
#define NETINFO_NOTICE_SKEW 3600
|
||||
if (labs(apparent_skew) > NETINFO_NOTICE_SKEW &&
|
||||
router_get_by_digest(conn->identity_digest) &&
|
||||
!received_skew_from_trusted_dir) {
|
||||
!received_netinfo_from_trusted_dir) {
|
||||
char dbuf[64];
|
||||
int severity;
|
||||
/*XXXX be smarter about when everybody says we are skewed. */
|
||||
if (router_digest_is_trusted_dir(conn->identity_digest)) {
|
||||
severity = LOG_WARN;
|
||||
received_skew_from_trusted_dir = 1;
|
||||
}
|
||||
else
|
||||
severity = LOG_INFO;
|
||||
int severity = router_digest_is_trusted_dir(conn->identity_digest) ?
|
||||
LOG_WARN : LOG_INFO;
|
||||
format_time_interval(dbuf, sizeof(dbuf), apparent_skew);
|
||||
log_fn(severity, LD_GENERAL, "Received NETINFO cell with skewed time from "
|
||||
"server at %s:%d. It seems that our clock is %s by %s, or "
|
||||
@ -647,25 +643,20 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn)
|
||||
"CLOCK_SKEW SKEW=%ld SOURCE=OR:%s:%d",
|
||||
apparent_skew,
|
||||
conn->_base.address, conn->_base.port);
|
||||
}
|
||||
else { /* Connect to a trusted dir to trigger a NETINFO cell*/
|
||||
} else { /* Connect to a trusted dir to trigger a NETINFO cell*/
|
||||
routerstatus_t *any_trusted_dir =
|
||||
router_pick_trusteddirserver(NO_AUTHORITY, 0);
|
||||
const tor_addr_t trusted_dir_addr;
|
||||
tor_addr_t trusted_dir_addr;
|
||||
tor_addr_from_ipv4n(&trusted_dir_addr, any_trusted_dir->addr);
|
||||
connection_or_connect(&trusted_dir_addr,
|
||||
any_trusted_dir->or_port,
|
||||
any_trusted_dir->descriptor_digest);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* Mark a flag if we get a good skew from a trusted dir */
|
||||
if (labs(apparent_skew) < NETINFO_NOTICE_SKEW &&
|
||||
router_digest_is_trusted_dir(conn->identity_digest) &&
|
||||
!received_skew_from_trusted_dir) {
|
||||
received_skew_from_trusted_dir = 1;
|
||||
}
|
||||
/* Note that we received a netinfo cell from a trusted directory */
|
||||
if (router_digest_is_trusted_dir(conn->identity_digest))
|
||||
received_netinfo_from_trusted_dir = 1;
|
||||
|
||||
/* XXX maybe act on my_apparent_addr, if the source is sufficiently
|
||||
* trustworthy. */
|
||||
@ -679,4 +670,3 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn)
|
||||
conn->_base.port, (int)conn->link_proto);
|
||||
assert_connection_ok(TO_CONN(conn),time(NULL));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user