--- /dev/null
+ o Major bugfixes (directory authorities):
+ - If authorities are unable to get a set of v2 consensus documents
+ from other directory authorities, they no longer fail-back and try
+ to fetch them from regular directory caches. This is a bugfix on
+ 0.2.2.26-beta, where routers stopped downloading v2 consensus
+ documents entirely. Fix for bug #5635.
const routerstatus_t *rs = NULL;
const or_options_t *options = get_options();
int prefer_authority = directory_fetches_from_authorities(options);
+ int require_authority = 0;
int get_via_tor = purpose_needs_anonymity(dir_purpose, router_purpose);
dirinfo_type_t type;
time_t if_modified_since = 0;
case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS:
type = V2_DIRINFO;
prefer_authority = 1; /* Only v2 authorities have these anyway. */
+ require_authority = 1; /* Don't fallback to asking a non-authority */
break;
case DIR_PURPOSE_FETCH_SERVERDESC:
type = (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_DIRINFO :
return;
}
}
+ if (rs == NULL && require_authority) {
+ log_info(LD_DIR, "No authorities were available for %s: will try "
+ "later.", dir_conn_purpose_to_string(dir_purpose));
+ return;
+ }
}
if (!rs && type != BRIDGE_DIRINFO) {
/* anybody with a non-zero dirport will do */