|
@@ -755,8 +755,8 @@ circuit_extend(cell_t *cell, circuit_t *circ)
|
|
|
char tmpbuf[INET_NTOA_BUF_LEN];
|
|
|
in.s_addr = htonl(circ->n_addr);
|
|
|
tor_inet_ntoa(&in,tmpbuf,sizeof(tmpbuf));
|
|
|
- log_info(LD_CIRC|LD_OR,"Next router (%s:%d) not connected. Connecting.",
|
|
|
- tmpbuf, circ->n_port);
|
|
|
+ log_debug(LD_CIRC|LD_OR,"Next router (%s:%d) not connected. Connecting.",
|
|
|
+ tmpbuf, circ->n_port);
|
|
|
|
|
|
circ->n_conn_onionskin = tor_malloc(ONIONSKIN_CHALLENGE_LEN);
|
|
|
memcpy(circ->n_conn_onionskin, onionskin, ONIONSKIN_CHALLENGE_LEN);
|
|
@@ -2169,8 +2169,9 @@ entry_guards_compute_status(void)
|
|
|
{
|
|
|
time_t now;
|
|
|
int changed = 0;
|
|
|
- int severity = LOG_INFO;
|
|
|
+ int severity = LOG_DEBUG;
|
|
|
or_options_t *options;
|
|
|
+ const char **reasons;
|
|
|
if (! entry_guards)
|
|
|
return;
|
|
|
|
|
@@ -2178,6 +2179,7 @@ entry_guards_compute_status(void)
|
|
|
|
|
|
now = time(NULL);
|
|
|
|
|
|
+ reasons = tor_malloc_zero(smartlist_len(entry_guards) * sizeof(char*));
|
|
|
SMARTLIST_FOREACH(entry_guards, entry_guard_t *, entry,
|
|
|
{
|
|
|
routerinfo_t *r = router_get_by_digest(entry->identity);
|
|
@@ -2187,24 +2189,28 @@ entry_guards_compute_status(void)
|
|
|
|
|
|
if (entry->bad_since)
|
|
|
tor_assert(reason);
|
|
|
-
|
|
|
- log_info(LD_CIRC, "Summary: Entry '%s' is %s, %s%s, and %s.",
|
|
|
- entry->nickname,
|
|
|
- entry->unreachable_since ? "unreachable" : "reachable",
|
|
|
- entry->bad_since ? "unusable: " : "usable",
|
|
|
- entry->bad_since ? reason : "",
|
|
|
- entry_is_live(entry, 0, 1, 0) ? "live" : "not live");
|
|
|
+ reasons[entry_sl_idx] = reason;
|
|
|
});
|
|
|
|
|
|
if (remove_dead_entry_guards())
|
|
|
changed = 1;
|
|
|
|
|
|
+ severity = changed ? LOG_DEBUG : LOG_INFO;
|
|
|
+
|
|
|
if (changed) {
|
|
|
- log_fn(severity, LD_CIRC, " (%d/%d entry guards are usable/new)",
|
|
|
- num_live_entry_guards(), smartlist_len(entry_guards));
|
|
|
+ SMARTLIST_FOREACH(entry_guards, entry_guard_t *, entry,
|
|
|
+ log_info(LD_CIRC, "Summary: Entry '%s' is %s, %s%s, and %s.",
|
|
|
+ entry->nickname,
|
|
|
+ entry->unreachable_since ? "unreachable" : "reachable",
|
|
|
+ entry->bad_since ? "unusable: " : "usable",
|
|
|
+ reasons[entry_sl_idx] ? reasons[entry_sl_idx] : "",
|
|
|
+ entry_is_live(entry, 0, 1, 0) ? "live" : "not live"));
|
|
|
+ log_info(LD_CIRC, " (%d/%d entry guards are usable/new)",
|
|
|
+ num_live_entry_guards(), smartlist_len(entry_guards));
|
|
|
log_entry_guards(LOG_INFO);
|
|
|
entry_guards_changed();
|
|
|
}
|
|
|
+ tor_free(reasons);
|
|
|
}
|
|
|
|
|
|
/** Called when a connection to an OR with the identity digest <b>digest</b>
|