summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-03-24 09:01:28 -0400
committerNick Mathewson <nickm@torproject.org>2016-03-24 09:01:28 -0400
commitea9472d085b1344eb3abc3f9e644beff184cbce3 (patch)
treec708d00c452ca989f5b81a85f711082a11f313f4
parentea829784c0d9c81910ce38a6b115455b93f686dd (diff)
parentb1569e39c87a32b64fe06702c1f18b43eb35f5ad (diff)
downloadtor-ea9472d085b1344eb3abc3f9e644beff184cbce3.tar.gz
tor-ea9472d085b1344eb3abc3f9e644beff184cbce3.zip
Merge remote-tracking branch 'teor/bug18489'
-rw-r--r--changes/bug184896
-rw-r--r--src/or/routerlist.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug18489 b/changes/bug18489
new file mode 100644
index 0000000000..d8c171ab74
--- /dev/null
+++ b/changes/bug18489
@@ -0,0 +1,6 @@
+ o Minor bugfixes (fallback directory mirrors):
+ - When requesting extrainfo descriptors from a trusted directory
+ server, check whether it is an authority or a fallback directory
+ which supports extrainfo descriptors.
+ Fixes bug 18489; bugfix on 90f6071d8d in tor-0.2.4.7-alpha.
+ Reported by "atagar", patch by "teor".
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index bc5e2e9133..7ec84f038a 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -1857,11 +1857,13 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
if (!d->is_running) continue;
if ((type & d->type) == 0)
continue;
+ int is_trusted_extrainfo = router_digest_is_trusted_dir_type(
+ d->digest, EXTRAINFO_DIRINFO);
if ((type & EXTRAINFO_DIRINFO) &&
- !router_supports_extrainfo(d->digest, 1))
+ !router_supports_extrainfo(d->digest, is_trusted_extrainfo))
continue;
if (requireother && me && router_digest_is_me(d->digest))
- continue;
+ continue;
if (try_excluding &&
routerset_contains_routerstatus(options->ExcludeNodes,
&d->fake_status, -1)) {