summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorteor (Tim Wilson-Brown) <teor2345@gmail.com>2016-03-24 10:38:07 +1100
committerteor (Tim Wilson-Brown) <teor2345@gmail.com>2016-03-24 10:39:23 +1100
commitf2a344e3974eeba860434884bd70f8d11cca94ea (patch)
tree543d199f715730999ad2d45db1bdb04ea2b4f24a /src/or
parent45681f695c6096e280bc7ec3bf0a67c27708dbbc (diff)
downloadtor-f2a344e3974eeba860434884bd70f8d11cca94ea.tar.gz
tor-f2a344e3974eeba860434884bd70f8d11cca94ea.zip
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".
Diffstat (limited to 'src/or')
-rw-r--r--src/or/connection.c8
-rw-r--r--src/or/directory.c21
-rw-r--r--src/or/routerlist.c9
3 files changed, 28 insertions, 10 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index 4e915f1213..fc9ec13c41 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1793,11 +1793,15 @@ connection_connect_log_client_use_ip_version(const connection_t *conn)
/* Check if we broke a mandatory address family restriction */
if ((must_ipv4 && tor_addr_family(&real_addr) == AF_INET6)
|| (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",
fmt_addr(&real_addr),
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
diff --git a/src/or/directory.c b/src/or/directory.c
index e4feda44fc..c95944b6f2 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -674,13 +674,17 @@ directory_choose_address_routerstatus(const routerstatus_t *status,
/* We rejected both addresses. This isn't great. */
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 "
"IPv6 %s OR %d Dir %d", routerstatus_describe(status),
fmt_addr32(status->addr), status->or_port,
status->dir_port, fmt_addr(&status->ipv6_addr),
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;
}
@@ -1100,14 +1104,21 @@ directory_initiate_command_rend(const tor_addr_port_t *or_addr_port,
if (or_connection && (!or_addr_port->port
|| 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_backtrace(LOG_WARN, LD_BUG, "Address came from");
+ if (!logged_backtrace) {
+ log_backtrace(LOG_INFO, LD_BUG, "Address came from");
+ logged_backtrace = 1;
+ }
return;
} else if (!or_connection && (!dir_addr_port->port
|| 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_backtrace(LOG_WARN, LD_BUG, "Address came from");
-
+ if (!logged_backtrace) {
+ log_backtrace(LOG_INFO, LD_BUG, "Address came from");
+ logged_backtrace = 1;
+ }
return;
}
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index bc5e2e9133..f065c3c202 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -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.
* This might be a bug. */
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.");
- 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)
&& !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,
rs->dir_port, fmt_addr(&rs->ipv6_addr),
rs->ipv6_orport, rs->dir_port);
- log_backtrace(LOG_INFO, LD_BUG, "Node search initiated by");
}
}