]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
fetch relay descriptors from v3 authorities
authorRoger Dingledine <arma@torproject.org>
Sun, 4 Apr 2010 01:53:29 +0000 (21:53 -0400)
committerRoger Dingledine <arma@torproject.org>
Sun, 4 Apr 2010 01:53:29 +0000 (21:53 -0400)
changes/1324-fetch-from-v3-not-v2 [new file with mode: 0644]
src/or/directory.c

diff --git a/changes/1324-fetch-from-v3-not-v2 b/changes/1324-fetch-from-v3-not-v2
new file mode 100644 (file)
index 0000000..7026980
--- /dev/null
@@ -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.
index 4153bca51b48e321b45b66653d6d1adccf84a953..7ec97d48e088ffb3becfda9af8a1d397cbefd728 100644 (file)
@@ -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;