aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2010-04-03 21:53:29 -0400
committerRoger Dingledine <arma@torproject.org>2010-04-03 21:53:29 -0400
commit0324d3b0ec6d8ee0ec24c2e93915c9aa70e1665d (patch)
tree43ab12670839f7f70cd982c898ce1082c4a11afd
parent6b7e5eb5f1ee9d6ef24cbe7d96fa5388f7a54bf0 (diff)
downloadtor-0324d3b0ec6d8ee0ec24c2e93915c9aa70e1665d.tar.gz
tor-0324d3b0ec6d8ee0ec24c2e93915c9aa70e1665d.zip
fetch relay descriptors from v3 authorities
-rw-r--r--changes/1324-fetch-from-v3-not-v25
-rw-r--r--src/or/directory.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/changes/1324-fetch-from-v3-not-v2 b/changes/1324-fetch-from-v3-not-v2
new file mode 100644
index 0000000000..7026980558
--- /dev/null
+++ b/changes/1324-fetch-from-v3-not-v2
@@ -0,0 +1,5 @@
+ o Major bugfixes:
+ - Directory mirrors were fetching relay descriptors only from v2
+ directory authorities, rather than v3 authorities like they should.
+ Only 2 v2 authorities remain (compared to 7 v3 authorities), leading
+ to a serious bottleneck. Bugfix on 0.2.0.9-alpha. Fixes bug 1324.
diff --git a/src/or/directory.c b/src/or/directory.c
index 4153bca51b..7ec97d48e0 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -128,6 +128,8 @@ authority_type_to_string(authority_type_t auth)
smartlist_add(lst, (void*)"V1");
if (auth & V2_AUTHORITY)
smartlist_add(lst, (void*)"V2");
+ if (auth & V3_AUTHORITY)
+ smartlist_add(lst, (void*)"V3");
if (auth & BRIDGE_AUTHORITY)
smartlist_add(lst, (void*)"Bridge");
if (auth & HIDSERV_AUTHORITY)
@@ -309,12 +311,14 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
case DIR_PURPOSE_FETCH_EXTRAINFO:
type = EXTRAINFO_CACHE |
(router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY :
- V2_AUTHORITY);
+ V3_AUTHORITY);
break;
case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS:
+ type = V2_AUTHORITY;
+ break;
case DIR_PURPOSE_FETCH_SERVERDESC:
type = (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY :
- V2_AUTHORITY);
+ V3_AUTHORITY);
break;
case DIR_PURPOSE_FETCH_RENDDESC:
type = HIDSERV_AUTHORITY;