mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 22:58:50 +01:00
Downgrade IP version warnings to avoid filling logs
Downgrade logs and backtraces about IP versions to
info-level. Only log backtraces once each time tor runs.
Assists in diagnosing bug 18351; bugfix on c3cc8e16e
in
tor-0.2.8.1-alpha.
Reported by "sysrqb" and "Christian", patch by "teor".
This commit is contained in:
parent
45681f695c
commit
f2a344e397
4 changed files with 34 additions and 10 deletions
6
changes/bug18351
Normal file
6
changes/bug18351
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
o Minor bugfixes (logging):
|
||||||
|
- Downgrade logs and backtraces about IP versions to
|
||||||
|
info-level. Only log backtraces once each time tor runs.
|
||||||
|
Assists in diagnosing bug 18351; bugfix on c3cc8e16e in
|
||||||
|
tor-0.2.8.1-alpha.
|
||||||
|
Reported by "sysrqb" and "Christian", patch by "teor".
|
|
@ -1793,11 +1793,15 @@ connection_connect_log_client_use_ip_version(const connection_t *conn)
|
||||||
/* Check if we broke a mandatory address family restriction */
|
/* Check if we broke a mandatory address family restriction */
|
||||||
if ((must_ipv4 && tor_addr_family(&real_addr) == AF_INET6)
|
if ((must_ipv4 && tor_addr_family(&real_addr) == AF_INET6)
|
||||||
|| (must_ipv6 && tor_addr_family(&real_addr) == AF_INET)) {
|
|| (must_ipv6 && tor_addr_family(&real_addr) == AF_INET)) {
|
||||||
log_warn(LD_BUG, "%s connection to %s violated ClientUseIPv%s 0.",
|
static int logged_backtrace = 0;
|
||||||
|
log_info(LD_BUG, "%s connection to %s violated ClientUseIPv%s 0.",
|
||||||
conn->type == CONN_TYPE_OR ? "OR" : "Dir",
|
conn->type == CONN_TYPE_OR ? "OR" : "Dir",
|
||||||
fmt_addr(&real_addr),
|
fmt_addr(&real_addr),
|
||||||
options->ClientUseIPv4 == 0 ? "4" : "6");
|
options->ClientUseIPv4 == 0 ? "4" : "6");
|
||||||
log_backtrace(LOG_WARN, LD_BUG, "Address came from");
|
if (!logged_backtrace) {
|
||||||
|
log_backtrace(LOG_INFO, LD_BUG, "Address came from");
|
||||||
|
logged_backtrace = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bridges are allowed to break IPv4/IPv6 ORPort preferences to connect to
|
/* Bridges are allowed to break IPv4/IPv6 ORPort preferences to connect to
|
||||||
|
|
|
@ -674,13 +674,17 @@ directory_choose_address_routerstatus(const routerstatus_t *status,
|
||||||
|
|
||||||
/* We rejected both addresses. This isn't great. */
|
/* We rejected both addresses. This isn't great. */
|
||||||
if (!have_or && !have_dir) {
|
if (!have_or && !have_dir) {
|
||||||
log_warn(LD_BUG, "Rejected all OR and Dir addresses from %s when "
|
static int logged_backtrace = 0;
|
||||||
|
log_info(LD_BUG, "Rejected all OR and Dir addresses from %s when "
|
||||||
"launching a directory connection to: IPv4 %s OR %d Dir %d "
|
"launching a directory connection to: IPv4 %s OR %d Dir %d "
|
||||||
"IPv6 %s OR %d Dir %d", routerstatus_describe(status),
|
"IPv6 %s OR %d Dir %d", routerstatus_describe(status),
|
||||||
fmt_addr32(status->addr), status->or_port,
|
fmt_addr32(status->addr), status->or_port,
|
||||||
status->dir_port, fmt_addr(&status->ipv6_addr),
|
status->dir_port, fmt_addr(&status->ipv6_addr),
|
||||||
status->ipv6_orport, status->dir_port);
|
status->ipv6_orport, status->dir_port);
|
||||||
log_backtrace(LOG_WARN, LD_BUG, "Addresses came from");
|
if (!logged_backtrace) {
|
||||||
|
log_backtrace(LOG_INFO, LD_BUG, "Addresses came from");
|
||||||
|
logged_backtrace = 1;
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1100,14 +1104,21 @@ directory_initiate_command_rend(const tor_addr_port_t *or_addr_port,
|
||||||
|
|
||||||
if (or_connection && (!or_addr_port->port
|
if (or_connection && (!or_addr_port->port
|
||||||
|| tor_addr_is_null(&or_addr_port->addr))) {
|
|| tor_addr_is_null(&or_addr_port->addr))) {
|
||||||
|
static int logged_backtrace = 0;
|
||||||
log_warn(LD_DIR, "Cannot make an OR connection without an OR port.");
|
log_warn(LD_DIR, "Cannot make an OR connection without an OR port.");
|
||||||
log_backtrace(LOG_WARN, LD_BUG, "Address came from");
|
if (!logged_backtrace) {
|
||||||
|
log_backtrace(LOG_INFO, LD_BUG, "Address came from");
|
||||||
|
logged_backtrace = 1;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
} else if (!or_connection && (!dir_addr_port->port
|
} else if (!or_connection && (!dir_addr_port->port
|
||||||
|| tor_addr_is_null(&dir_addr_port->addr))) {
|
|| tor_addr_is_null(&dir_addr_port->addr))) {
|
||||||
|
static int logged_backtrace = 0;
|
||||||
log_warn(LD_DIR, "Cannot make a Dir connection without a Dir port.");
|
log_warn(LD_DIR, "Cannot make a Dir connection without a Dir port.");
|
||||||
log_backtrace(LOG_WARN, LD_BUG, "Address came from");
|
if (!logged_backtrace) {
|
||||||
|
log_backtrace(LOG_INFO, LD_BUG, "Address came from");
|
||||||
|
logged_backtrace = 1;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1560,9 +1560,13 @@ router_picked_poor_directory_log(const routerstatus_t *rs)
|
||||||
/* We couldn't find a node, or the one we have doesn't fit our preferences.
|
/* We couldn't find a node, or the one we have doesn't fit our preferences.
|
||||||
* This might be a bug. */
|
* This might be a bug. */
|
||||||
if (!rs) {
|
if (!rs) {
|
||||||
log_warn(LD_BUG, "Firewall denied all OR and Dir addresses for all relays "
|
static int logged_backtrace = 0;
|
||||||
|
log_info(LD_BUG, "Firewall denied all OR and Dir addresses for all relays "
|
||||||
"when searching for a directory.");
|
"when searching for a directory.");
|
||||||
log_backtrace(LOG_WARN, LD_BUG, "Node search initiated by");
|
if (!logged_backtrace) {
|
||||||
|
log_backtrace(LOG_INFO, LD_BUG, "Node search initiated by");
|
||||||
|
logged_backtrace = 1;
|
||||||
|
}
|
||||||
} else if (!fascist_firewall_allows_rs(rs, FIREWALL_OR_CONNECTION, 1)
|
} else if (!fascist_firewall_allows_rs(rs, FIREWALL_OR_CONNECTION, 1)
|
||||||
&& !fascist_firewall_allows_rs(rs, FIREWALL_DIR_CONNECTION, 1)
|
&& !fascist_firewall_allows_rs(rs, FIREWALL_DIR_CONNECTION, 1)
|
||||||
) {
|
) {
|
||||||
|
@ -1573,7 +1577,6 @@ router_picked_poor_directory_log(const routerstatus_t *rs)
|
||||||
fmt_addr32(rs->addr), rs->or_port,
|
fmt_addr32(rs->addr), rs->or_port,
|
||||||
rs->dir_port, fmt_addr(&rs->ipv6_addr),
|
rs->dir_port, fmt_addr(&rs->ipv6_addr),
|
||||||
rs->ipv6_orport, rs->dir_port);
|
rs->ipv6_orport, rs->dir_port);
|
||||||
log_backtrace(LOG_INFO, LD_BUG, "Node search initiated by");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue