summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2007-05-13 00:14:48 +0000
committerRoger Dingledine <arma@torproject.org>2007-05-13 00:14:48 +0000
commit2ded13ecdc3e102657daa0cc45d4c44602b5e327 (patch)
tree275a892a6ef067c35eb7862953320cc178d3d953
parent3597eaab79adedc07f1fe802a8d4ff22c24bb515 (diff)
downloadtor-2ded13ecdc3e102657daa0cc45d4c44602b5e327.tar.gz
tor-2ded13ecdc3e102657daa0cc45d4c44602b5e327.zip
backport r10175
svn:r10176
-rw-r--r--ChangeLog3
-rw-r--r--src/or/routerlist.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 998f160fb7..6a8d65f950 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,9 @@ Changes in version 0.1.2.14 - 2007-0?-??
behavior. (Reported by seeess, fixes bug 425.)
- Fix a bug in dirserv_remove_invalid() that would cause authorities
to corrupt memory under some really unlikely scenarios.
+ - If a directory authority is down, skip it when deciding where to get
+ networkstatus objects or descriptors. Otherwise we keep asking
+ every 10 seconds forever.
o Minor bugfixes:
- Actually set the purpose correctly for descriptors inserted with
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 92577f074d..3cd450980f 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -4051,6 +4051,7 @@ update_router_descriptor_cache_downloads(time_t now)
n_download = 0;
SMARTLIST_FOREACH(networkstatus_list, networkstatus_t *, ns,
{
+ trusted_dir_server_t *ds;
smartlist_t *dl;
dl = downloadable[ns_sl_idx] = smartlist_create();
download_from[ns_sl_idx] = smartlist_create();
@@ -4064,6 +4065,13 @@ update_router_descriptor_cache_downloads(time_t now)
* we take this clause out. -RD */
continue;
}
+
+ /* Don't try dirservers that we think are down -- we might have
+ * just tried them and just marked them as down. */
+ ds = router_get_trusteddirserver_by_digest(ns->identity_digest);
+ if (ds && !ds->is_running)
+ continue;
+
SMARTLIST_FOREACH(ns->entries, routerstatus_t * , rs,
{
if (!rs->need_to_mirror)