summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2006-04-09 00:36:15 +0000
committerRoger Dingledine <arma@torproject.org>2006-04-09 00:36:15 +0000
commitd48cdbe2e0a1f6ee8e223c71fdeb57ed50b8414a (patch)
treef5d50da94c09d6bd0b2a6707796659193bd2ce18
parent9a6b9f169212b042b3bd86dcad0472bd6cd55d50 (diff)
downloadtor-d48cdbe2e0a1f6ee8e223c71fdeb57ed50b8414a.tar.gz
tor-d48cdbe2e0a1f6ee8e223c71fdeb57ed50b8414a.zip
When fetching rendezvous descriptors, we were willing to ask
v2 authorities too. And of course they did not have a copy. svn:r6331
-rw-r--r--src/or/directory.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index 88ff50099c..f073fc14e0 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -123,7 +123,8 @@ directory_get_from_dirserver(uint8_t purpose, const char *resource,
int directconn = !purpose_is_private(purpose);
int need_v1_support = purpose == DIR_PURPOSE_FETCH_DIR ||
- purpose == DIR_PURPOSE_FETCH_RUNNING_LIST;
+ purpose == DIR_PURPOSE_FETCH_RUNNING_LIST ||
+ purpose == DIR_PURPOSE_FETCH_RENDDESC;
int need_v2_support = purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS ||
purpose == DIR_PURPOSE_FETCH_SERVERDESC;
@@ -154,7 +155,7 @@ directory_get_from_dirserver(uint8_t purpose, const char *resource,
log_info(LD_DIR,
"No router found for %s; falling back to dirserver list",
which);
- rs = router_pick_trusteddirserver(1, 1, 1,
+ rs = router_pick_trusteddirserver(need_v1_support, 1, 1,
retry_if_no_servers);
if (!rs)
directconn = 0; /* last resort: try routing it via Tor */
@@ -165,7 +166,7 @@ directory_get_from_dirserver(uint8_t purpose, const char *resource,
/* Never use fascistfirewall; we're going via Tor. */
if (purpose == DIR_PURPOSE_FETCH_RENDDESC) {
/* only ask authdirservers, any of them will do */
- rs = router_pick_trusteddirserver(0, 0, 0, retry_if_no_servers);
+ rs = router_pick_trusteddirserver(1, 0, 0, retry_if_no_servers);
} else {
/* anybody with a non-zero dirport will do. Disregard firewalls. */
rs = router_pick_directory_server(1, 0, need_v2_support,