fetch relay descriptors from v3 authorities

This commit is contained in:
Roger Dingledine 2010-04-03 21:53:29 -04:00
parent 6b7e5eb5f1
commit 0324d3b0ec
2 changed files with 11 additions and 2 deletions

View File

@ -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.

View File

@ -128,6 +128,8 @@ authority_type_to_string(authority_type_t auth)
smartlist_add(lst, (void*)"V1"); smartlist_add(lst, (void*)"V1");
if (auth & V2_AUTHORITY) if (auth & V2_AUTHORITY)
smartlist_add(lst, (void*)"V2"); smartlist_add(lst, (void*)"V2");
if (auth & V3_AUTHORITY)
smartlist_add(lst, (void*)"V3");
if (auth & BRIDGE_AUTHORITY) if (auth & BRIDGE_AUTHORITY)
smartlist_add(lst, (void*)"Bridge"); smartlist_add(lst, (void*)"Bridge");
if (auth & HIDSERV_AUTHORITY) 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: case DIR_PURPOSE_FETCH_EXTRAINFO:
type = EXTRAINFO_CACHE | type = EXTRAINFO_CACHE |
(router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY : (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY :
V2_AUTHORITY); V3_AUTHORITY);
break; break;
case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS: case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS:
type = V2_AUTHORITY;
break;
case DIR_PURPOSE_FETCH_SERVERDESC: case DIR_PURPOSE_FETCH_SERVERDESC:
type = (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY : type = (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY :
V2_AUTHORITY); V3_AUTHORITY);
break; break;
case DIR_PURPOSE_FETCH_RENDDESC: case DIR_PURPOSE_FETCH_RENDDESC:
type = HIDSERV_AUTHORITY; type = HIDSERV_AUTHORITY;