Replace _AUTHORITY enum values with _DIRINFO values (automted)

This commit is contained in:
Nick Mathewson 2010-11-08 14:35:02 -05:00
parent 6e58575767
commit 3df22887a3
11 changed files with 100 additions and 99 deletions

View File

@ -4649,7 +4649,7 @@ retry_bridge_descriptor_fetch_directly(const char *digest)
void void
fetch_bridge_descriptors(or_options_t *options, time_t now) fetch_bridge_descriptors(or_options_t *options, time_t now)
{ {
int num_bridge_auths = get_n_authorities(BRIDGE_AUTHORITY); int num_bridge_auths = get_n_authorities(BRIDGE_DIRINFO);
int ask_bridge_directly; int ask_bridge_directly;
int can_use_bridge_authority; int can_use_bridge_authority;

View File

@ -875,16 +875,16 @@ validate_dir_authorities(or_options_t *options, or_options_t *old_options)
/* Now go through the four ways you can configure an alternate /* Now go through the four ways you can configure an alternate
* set of directory authorities, and make sure none are broken. */ * set of directory authorities, and make sure none are broken. */
for (cl = options->DirServers; cl; cl = cl->next) for (cl = options->DirServers; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 1)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 1)<0)
return -1; return -1;
for (cl = options->AlternateBridgeAuthority; cl; cl = cl->next) for (cl = options->AlternateBridgeAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 1)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 1)<0)
return -1; return -1;
for (cl = options->AlternateDirAuthority; cl; cl = cl->next) for (cl = options->AlternateDirAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 1)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 1)<0)
return -1; return -1;
for (cl = options->AlternateHSAuthority; cl; cl = cl->next) for (cl = options->AlternateHSAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 1)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 1)<0)
return -1; return -1;
return 0; return 0;
} }
@ -915,27 +915,27 @@ consider_adding_dir_authorities(or_options_t *options,
if (!options->DirServers) { if (!options->DirServers) {
/* then we may want some of the defaults */ /* then we may want some of the defaults */
dirinfo_type_t type = NO_AUTHORITY; dirinfo_type_t type = NO_DIRINFO;
if (!options->AlternateBridgeAuthority) if (!options->AlternateBridgeAuthority)
type |= BRIDGE_AUTHORITY; type |= BRIDGE_DIRINFO;
if (!options->AlternateDirAuthority) if (!options->AlternateDirAuthority)
type |= V1_AUTHORITY | V2_AUTHORITY | V3_AUTHORITY; type |= V1_DIRINFO | V2_DIRINFO | V3_DIRINFO;
if (!options->AlternateHSAuthority) if (!options->AlternateHSAuthority)
type |= HIDSERV_AUTHORITY; type |= HIDSERV_DIRINFO;
add_default_trusted_dir_authorities(type); add_default_trusted_dir_authorities(type);
} }
for (cl = options->DirServers; cl; cl = cl->next) for (cl = options->DirServers; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 0)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 0)<0)
return -1; return -1;
for (cl = options->AlternateBridgeAuthority; cl; cl = cl->next) for (cl = options->AlternateBridgeAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 0)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 0)<0)
return -1; return -1;
for (cl = options->AlternateDirAuthority; cl; cl = cl->next) for (cl = options->AlternateDirAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 0)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 0)<0)
return -1; return -1;
for (cl = options->AlternateHSAuthority; cl; cl = cl->next) for (cl = options->AlternateHSAuthority; cl; cl = cl->next)
if (parse_dir_server_line(cl->value, NO_AUTHORITY, 0)<0) if (parse_dir_server_line(cl->value, NO_DIRINFO, 0)<0)
return -1; return -1;
return 0; return 0;
} }
@ -2849,23 +2849,23 @@ compute_publishserverdescriptor(or_options_t *options)
{ {
smartlist_t *list = options->PublishServerDescriptor; smartlist_t *list = options->PublishServerDescriptor;
dirinfo_type_t *auth = &options->_PublishServerDescriptor; dirinfo_type_t *auth = &options->_PublishServerDescriptor;
*auth = NO_AUTHORITY; *auth = NO_DIRINFO;
if (!list) /* empty list, answer is none */ if (!list) /* empty list, answer is none */
return 0; return 0;
SMARTLIST_FOREACH(list, const char *, string, { SMARTLIST_FOREACH(list, const char *, string, {
if (!strcasecmp(string, "v1")) if (!strcasecmp(string, "v1"))
*auth |= V1_AUTHORITY; *auth |= V1_DIRINFO;
else if (!strcmp(string, "1")) else if (!strcmp(string, "1"))
if (options->BridgeRelay) if (options->BridgeRelay)
*auth |= BRIDGE_AUTHORITY; *auth |= BRIDGE_DIRINFO;
else else
*auth |= V2_AUTHORITY | V3_AUTHORITY; *auth |= V2_DIRINFO | V3_DIRINFO;
else if (!strcasecmp(string, "v2")) else if (!strcasecmp(string, "v2"))
*auth |= V2_AUTHORITY; *auth |= V2_DIRINFO;
else if (!strcasecmp(string, "v3")) else if (!strcasecmp(string, "v3"))
*auth |= V3_AUTHORITY; *auth |= V3_DIRINFO;
else if (!strcasecmp(string, "bridge")) else if (!strcasecmp(string, "bridge"))
*auth |= BRIDGE_AUTHORITY; *auth |= BRIDGE_DIRINFO;
else if (!strcasecmp(string, "hidserv")) else if (!strcasecmp(string, "hidserv"))
log_warn(LD_CONFIG, log_warn(LD_CONFIG,
"PublishServerDescriptor hidserv is invalid. See " "PublishServerDescriptor hidserv is invalid. See "
@ -3311,9 +3311,9 @@ options_validate(or_options_t *old_options, or_options_t *options,
} }
if ((options->BridgeRelay if ((options->BridgeRelay
|| options->_PublishServerDescriptor & BRIDGE_AUTHORITY) || options->_PublishServerDescriptor & BRIDGE_DIRINFO)
&& (options->_PublishServerDescriptor && (options->_PublishServerDescriptor
& (V1_AUTHORITY|V2_AUTHORITY|V3_AUTHORITY))) { & (V1_DIRINFO|V2_DIRINFO|V3_DIRINFO))) {
REJECT("Bridges are not supposed to publish router descriptors to the " REJECT("Bridges are not supposed to publish router descriptors to the "
"directory authorities. Please correct your " "directory authorities. Please correct your "
"PublishServerDescriptor line."); "PublishServerDescriptor line.");
@ -4561,7 +4561,7 @@ parse_dir_server_line(const char *line, dirinfo_type_t required_type,
uint16_t dir_port = 0, or_port = 0; uint16_t dir_port = 0, or_port = 0;
char digest[DIGEST_LEN]; char digest[DIGEST_LEN];
char v3_digest[DIGEST_LEN]; char v3_digest[DIGEST_LEN];
dirinfo_type_t type = V2_AUTHORITY; dirinfo_type_t type = V2_DIRINFO;
int is_not_hidserv_authority = 0, is_not_v2_authority = 0; int is_not_hidserv_authority = 0, is_not_v2_authority = 0;
items = smartlist_create(); items = smartlist_create();
@ -4582,13 +4582,13 @@ parse_dir_server_line(const char *line, dirinfo_type_t required_type,
if (TOR_ISDIGIT(flag[0])) if (TOR_ISDIGIT(flag[0]))
break; break;
if (!strcasecmp(flag, "v1")) { if (!strcasecmp(flag, "v1")) {
type |= (V1_AUTHORITY | HIDSERV_AUTHORITY); type |= (V1_DIRINFO | HIDSERV_DIRINFO);
} else if (!strcasecmp(flag, "hs")) { } else if (!strcasecmp(flag, "hs")) {
type |= HIDSERV_AUTHORITY; type |= HIDSERV_DIRINFO;
} else if (!strcasecmp(flag, "no-hs")) { } else if (!strcasecmp(flag, "no-hs")) {
is_not_hidserv_authority = 1; is_not_hidserv_authority = 1;
} else if (!strcasecmp(flag, "bridge")) { } else if (!strcasecmp(flag, "bridge")) {
type |= BRIDGE_AUTHORITY; type |= BRIDGE_DIRINFO;
} else if (!strcasecmp(flag, "no-v2")) { } else if (!strcasecmp(flag, "no-v2")) {
is_not_v2_authority = 1; is_not_v2_authority = 1;
} else if (!strcasecmpstart(flag, "orport=")) { } else if (!strcasecmpstart(flag, "orport=")) {
@ -4605,7 +4605,7 @@ parse_dir_server_line(const char *line, dirinfo_type_t required_type,
log_warn(LD_CONFIG, "Bad v3 identity digest '%s' on DirServer line", log_warn(LD_CONFIG, "Bad v3 identity digest '%s' on DirServer line",
flag); flag);
} else { } else {
type |= V3_AUTHORITY; type |= V3_DIRINFO;
} }
} else { } else {
log_warn(LD_CONFIG, "Unrecognized flag '%s' on DirServer line", log_warn(LD_CONFIG, "Unrecognized flag '%s' on DirServer line",
@ -4615,9 +4615,9 @@ parse_dir_server_line(const char *line, dirinfo_type_t required_type,
smartlist_del_keeporder(items, 0); smartlist_del_keeporder(items, 0);
} }
if (is_not_hidserv_authority) if (is_not_hidserv_authority)
type &= ~HIDSERV_AUTHORITY; type &= ~HIDSERV_DIRINFO;
if (is_not_v2_authority) if (is_not_v2_authority)
type &= ~V2_AUTHORITY; type &= ~V2_DIRINFO;
if (smartlist_len(items) < 2) { if (smartlist_len(items) < 2) {
log_warn(LD_CONFIG, "Too few arguments to DirServer line."); log_warn(LD_CONFIG, "Too few arguments to DirServer line.");

View File

@ -1847,7 +1847,7 @@ getinfo_helper_events(control_connection_t *control_conn,
} else if (!strcmp(question, "status/version/num-versioning") || } else if (!strcmp(question, "status/version/num-versioning") ||
!strcmp(question, "status/version/num-concurring")) { !strcmp(question, "status/version/num-concurring")) {
char s[33]; char s[33];
tor_snprintf(s, sizeof(s), "%d", get_n_authorities(V3_AUTHORITY)); tor_snprintf(s, sizeof(s), "%d", get_n_authorities(V3_DIRINFO));
*answer = tor_strdup(s); *answer = tor_strdup(s);
log_warn(LD_GENERAL, "%s is deprecated; it no longer gives useful " log_warn(LD_GENERAL, "%s is deprecated; it no longer gives useful "
"information", question); "information", question);

View File

@ -153,15 +153,15 @@ dirinfo_type_to_string(dirinfo_type_t auth)
{ {
char *result; char *result;
smartlist_t *lst = smartlist_create(); smartlist_t *lst = smartlist_create();
if (auth & V1_AUTHORITY) if (auth & V1_DIRINFO)
smartlist_add(lst, (void*)"V1"); smartlist_add(lst, (void*)"V1");
if (auth & V2_AUTHORITY) if (auth & V2_DIRINFO)
smartlist_add(lst, (void*)"V2"); smartlist_add(lst, (void*)"V2");
if (auth & V3_AUTHORITY) if (auth & V3_DIRINFO)
smartlist_add(lst, (void*)"V3"); smartlist_add(lst, (void*)"V3");
if (auth & BRIDGE_AUTHORITY) if (auth & BRIDGE_DIRINFO)
smartlist_add(lst, (void*)"Bridge"); smartlist_add(lst, (void*)"Bridge");
if (auth & HIDSERV_AUTHORITY) if (auth & HIDSERV_DIRINFO)
smartlist_add(lst, (void*)"Hidden service"); smartlist_add(lst, (void*)"Hidden service");
if (smartlist_len(lst)) { if (smartlist_len(lst)) {
result = smartlist_join_strings(lst, ", ", 0, NULL); result = smartlist_join_strings(lst, ", ", 0, NULL);
@ -356,30 +356,30 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
* it elsewhere in directory.c. -RD */ * it elsewhere in directory.c. -RD */
switch (dir_purpose) { switch (dir_purpose) {
case DIR_PURPOSE_FETCH_EXTRAINFO: case DIR_PURPOSE_FETCH_EXTRAINFO:
type = EXTRAINFO_CACHE | type = EXTRAINFO_DIRINFO |
(router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY : (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_DIRINFO :
V3_AUTHORITY); V3_DIRINFO);
break; break;
case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS: case DIR_PURPOSE_FETCH_V2_NETWORKSTATUS:
type = V2_AUTHORITY; type = V2_DIRINFO;
break; 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_DIRINFO :
V3_AUTHORITY); V3_DIRINFO);
break; break;
case DIR_PURPOSE_FETCH_RENDDESC: case DIR_PURPOSE_FETCH_RENDDESC:
type = HIDSERV_AUTHORITY; type = HIDSERV_DIRINFO;
break; break;
case DIR_PURPOSE_FETCH_STATUS_VOTE: case DIR_PURPOSE_FETCH_STATUS_VOTE:
case DIR_PURPOSE_FETCH_DETACHED_SIGNATURES: case DIR_PURPOSE_FETCH_DETACHED_SIGNATURES:
type = V3_AUTHORITY; type = V3_DIRINFO;
break; break;
case DIR_PURPOSE_FETCH_CONSENSUS: case DIR_PURPOSE_FETCH_CONSENSUS:
case DIR_PURPOSE_FETCH_CERTIFICATE: case DIR_PURPOSE_FETCH_CERTIFICATE:
type = V3_AUTHORITY; type = V3_DIRINFO;
break; break;
case DIR_PURPOSE_FETCH_MICRODESC: case DIR_PURPOSE_FETCH_MICRODESC:
type = V3_AUTHORITY; type = V3_DIRINFO;
break; break;
default: default:
log_warn(LD_BUG, "Unexpected purpose %d", (int)dir_purpose); log_warn(LD_BUG, "Unexpected purpose %d", (int)dir_purpose);
@ -407,11 +407,11 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
} }
} }
if (!options->FetchServerDescriptors && type != HIDSERV_AUTHORITY) if (!options->FetchServerDescriptors && type != HIDSERV_DIRINFO)
return; return;
if (!get_via_tor) { if (!get_via_tor) {
if (options->UseBridges && type != BRIDGE_AUTHORITY) { if (options->UseBridges && type != BRIDGE_DIRINFO) {
/* want to ask a running bridge for which we have a descriptor. */ /* want to ask a running bridge for which we have a descriptor. */
/* XXX023 we assume that all of our bridges can answer any /* XXX023 we assume that all of our bridges can answer any
* possible directory question. This won't be true forever. -RD */ * possible directory question. This won't be true forever. -RD */
@ -435,7 +435,7 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
"nodes are available yet."); "nodes are available yet.");
return; return;
} else { } else {
if (prefer_authority || type == BRIDGE_AUTHORITY) { if (prefer_authority || type == BRIDGE_DIRINFO) {
/* only ask authdirservers, and don't ask myself */ /* only ask authdirservers, and don't ask myself */
rs = router_pick_trusteddirserver(type, pds_flags); rs = router_pick_trusteddirserver(type, pds_flags);
if (rs == NULL && (pds_flags & (PDS_NO_EXISTING_SERVERDESC_FETCH| if (rs == NULL && (pds_flags & (PDS_NO_EXISTING_SERVERDESC_FETCH|
@ -457,7 +457,7 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
} }
} }
} }
if (!rs && type != BRIDGE_AUTHORITY) { if (!rs && type != BRIDGE_DIRINFO) {
/* anybody with a non-zero dirport will do */ /* anybody with a non-zero dirport will do */
rs = router_pick_directory_server(type, pds_flags); rs = router_pick_directory_server(type, pds_flags);
if (!rs) { if (!rs) {
@ -474,7 +474,7 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
if (dir_purpose == DIR_PURPOSE_FETCH_RENDDESC) { if (dir_purpose == DIR_PURPOSE_FETCH_RENDDESC) {
/* only ask hidserv authorities, any of them will do */ /* only ask hidserv authorities, any of them will do */
pds_flags |= PDS_IGNORE_FASCISTFIREWALL|PDS_ALLOW_SELF; pds_flags |= PDS_IGNORE_FASCISTFIREWALL|PDS_ALLOW_SELF;
rs = router_pick_trusteddirserver(HIDSERV_AUTHORITY, pds_flags); rs = router_pick_trusteddirserver(HIDSERV_DIRINFO, pds_flags);
} else { } else {
/* anybody with a non-zero dirport will do. Disregard firewalls. */ /* anybody with a non-zero dirport will do. Disregard firewalls. */
pds_flags |= PDS_IGNORE_FASCISTFIREWALL; pds_flags |= PDS_IGNORE_FASCISTFIREWALL;
@ -520,7 +520,7 @@ directory_get_from_all_authorities(uint8_t dir_purpose,
routerstatus_t *rs; routerstatus_t *rs;
if (router_digest_is_me(ds->digest)) if (router_digest_is_me(ds->digest))
continue; continue;
if (!(ds->type & V3_AUTHORITY)) if (!(ds->type & V3_DIRINFO))
continue; continue;
rs = &ds->fake_status; rs = &ds->fake_status;
directory_initiate_command_routerstatus(rs, dir_purpose, router_purpose, directory_initiate_command_routerstatus(rs, dir_purpose, router_purpose,
@ -1047,7 +1047,7 @@ directory_get_consensus_url(int supports_conditional_consensus,
trusted_dir_server_t *, ds, trusted_dir_server_t *, ds,
{ {
char *hex; char *hex;
if (!(ds->type & V3_AUTHORITY)) if (!(ds->type & V3_DIRINFO))
continue; continue;
hex = tor_malloc(2*CONDITIONAL_CONSENSUS_FPR_LEN+1); hex = tor_malloc(2*CONDITIONAL_CONSENSUS_FPR_LEN+1);

View File

@ -1555,8 +1555,8 @@ dirserv_pick_cached_dir_obj(cached_dir_t *cache_src,
dirinfo_type_t auth_type) dirinfo_type_t auth_type)
{ {
or_options_t *options = get_options(); or_options_t *options = get_options();
int authority = (auth_type == V1_AUTHORITY && authdir_mode_v1(options)) || int authority = (auth_type == V1_DIRINFO && authdir_mode_v1(options)) ||
(auth_type == V2_AUTHORITY && authdir_mode_v2(options)); (auth_type == V2_DIRINFO && authdir_mode_v2(options));
if (!authority || authdir_mode_bridge(options)) { if (!authority || authdir_mode_bridge(options)) {
return cache_src; return cache_src;
@ -1585,7 +1585,7 @@ dirserv_get_directory(void)
return dirserv_pick_cached_dir_obj(cached_directory, the_directory, return dirserv_pick_cached_dir_obj(cached_directory, the_directory,
the_directory_is_dirty, the_directory_is_dirty,
dirserv_regenerate_directory, dirserv_regenerate_directory,
"v1 server directory", V1_AUTHORITY); "v1 server directory", V1_DIRINFO);
} }
/** Only called by v1 auth dirservers. /** Only called by v1 auth dirservers.
@ -1678,7 +1678,7 @@ dirserv_get_runningrouters(void)
&cached_runningrouters, &the_runningrouters, &cached_runningrouters, &the_runningrouters,
runningrouters_is_dirty, runningrouters_is_dirty,
generate_runningrouters, generate_runningrouters,
"v1 network status list", V1_AUTHORITY); "v1 network status list", V1_DIRINFO);
} }
/** Return the latest downloaded consensus networkstatus in encoded, signed, /** Return the latest downloaded consensus networkstatus in encoded, signed,
@ -2967,7 +2967,7 @@ dirserv_get_networkstatus_v2_fingerprints(smartlist_t *result,
} else { } else {
SMARTLIST_FOREACH(router_get_trusted_dir_servers(), SMARTLIST_FOREACH(router_get_trusted_dir_servers(),
trusted_dir_server_t *, ds, trusted_dir_server_t *, ds,
if (ds->type & V2_AUTHORITY) if (ds->type & V2_DIRINFO)
smartlist_add(result, tor_memdup(ds->digest, DIGEST_LEN))); smartlist_add(result, tor_memdup(ds->digest, DIGEST_LEN)));
} }
smartlist_sort_digests(result); smartlist_sort_digests(result);

View File

@ -2742,7 +2742,7 @@ dirvote_perform_vote(void)
directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_VOTE, directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_VOTE,
ROUTER_PURPOSE_GENERAL, ROUTER_PURPOSE_GENERAL,
V3_AUTHORITY, V3_DIRINFO,
pending_vote->vote_body->dir, pending_vote->vote_body->dir,
pending_vote->vote_body->dir_len, 0); pending_vote->vote_body->dir_len, 0);
log_notice(LD_DIR, "Vote posted."); log_notice(LD_DIR, "Vote posted.");
@ -2761,7 +2761,7 @@ dirvote_fetch_missing_votes(void)
SMARTLIST_FOREACH(router_get_trusted_dir_servers(), SMARTLIST_FOREACH(router_get_trusted_dir_servers(),
trusted_dir_server_t *, ds, trusted_dir_server_t *, ds,
{ {
if (!(ds->type & V3_AUTHORITY)) if (!(ds->type & V3_DIRINFO))
continue; continue;
if (!dirvote_get_vote(ds->v3_identity_digest, if (!dirvote_get_vote(ds->v3_identity_digest,
DGV_BY_ID|DGV_INCLUDE_PENDING)) { DGV_BY_ID|DGV_INCLUDE_PENDING)) {
@ -2874,7 +2874,7 @@ list_v3_auth_ids(void)
char *keys; char *keys;
SMARTLIST_FOREACH(router_get_trusted_dir_servers(), SMARTLIST_FOREACH(router_get_trusted_dir_servers(),
trusted_dir_server_t *, ds, trusted_dir_server_t *, ds,
if ((ds->type & V3_AUTHORITY) && if ((ds->type & V3_DIRINFO) &&
!tor_digest_is_zero(ds->v3_identity_digest)) !tor_digest_is_zero(ds->v3_identity_digest))
smartlist_add(known_v3_keys, smartlist_add(known_v3_keys,
tor_strdup(hex_str(ds->v3_identity_digest, DIGEST_LEN)))); tor_strdup(hex_str(ds->v3_identity_digest, DIGEST_LEN))));
@ -3069,7 +3069,7 @@ dirvote_compute_consensuses(void)
if (!pending_vote_list) if (!pending_vote_list)
pending_vote_list = smartlist_create(); pending_vote_list = smartlist_create();
n_voters = get_n_authorities(V3_AUTHORITY); n_voters = get_n_authorities(V3_DIRINFO);
n_votes = smartlist_len(pending_vote_list); n_votes = smartlist_len(pending_vote_list);
if (n_votes <= n_voters/2) { if (n_votes <= n_voters/2) {
log_warn(LD_DIR, "We don't have enough votes to generate a consensus: " log_warn(LD_DIR, "We don't have enough votes to generate a consensus: "
@ -3208,7 +3208,7 @@ dirvote_compute_consensuses(void)
directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_SIGNATURES, directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_SIGNATURES,
ROUTER_PURPOSE_GENERAL, ROUTER_PURPOSE_GENERAL,
V3_AUTHORITY, V3_DIRINFO,
pending_consensus_signatures, pending_consensus_signatures,
strlen(pending_consensus_signatures), 0); strlen(pending_consensus_signatures), 0);
log_notice(LD_DIR, "Signature(s) posted."); log_notice(LD_DIR, "Signature(s) posted.");

View File

@ -482,7 +482,7 @@ networkstatus_check_consensus_signature(networkstatus_t *consensus,
int n_bad = 0; int n_bad = 0;
int n_unknown = 0; int n_unknown = 0;
int n_no_signature = 0; int n_no_signature = 0;
int n_v3_authorities = get_n_authorities(V3_AUTHORITY); int n_v3_authorities = get_n_authorities(V3_DIRINFO);
int n_required = n_v3_authorities/2 + 1; int n_required = n_v3_authorities/2 + 1;
smartlist_t *need_certs_from = smartlist_create(); smartlist_t *need_certs_from = smartlist_create();
smartlist_t *unrecognized = smartlist_create(); smartlist_t *unrecognized = smartlist_create();
@ -553,7 +553,7 @@ networkstatus_check_consensus_signature(networkstatus_t *consensus,
SMARTLIST_FOREACH(router_get_trusted_dir_servers(), SMARTLIST_FOREACH(router_get_trusted_dir_servers(),
trusted_dir_server_t *, ds, trusted_dir_server_t *, ds,
{ {
if ((ds->type & V3_AUTHORITY) && if ((ds->type & V3_DIRINFO) &&
!networkstatus_get_voter_by_id(consensus, ds->v3_identity_digest)) !networkstatus_get_voter_by_id(consensus, ds->v3_identity_digest))
smartlist_add(missing_authorities, ds); smartlist_add(missing_authorities, ds);
}); });
@ -736,7 +736,7 @@ router_set_networkstatus_v2(const char *s, time_t arrived_at,
base16_encode(fp, HEX_DIGEST_LEN+1, ns->identity_digest, DIGEST_LEN); base16_encode(fp, HEX_DIGEST_LEN+1, ns->identity_digest, DIGEST_LEN);
if (!(trusted_dir = if (!(trusted_dir =
router_get_trusteddirserver_by_digest(ns->identity_digest)) || router_get_trusteddirserver_by_digest(ns->identity_digest)) ||
!(trusted_dir->type & V2_AUTHORITY)) { !(trusted_dir->type & V2_DIRINFO)) {
log_info(LD_DIR, "Network status was signed, but not by an authoritative " log_info(LD_DIR, "Network status was signed, but not by an authoritative "
"directory we recognize."); "directory we recognize.");
source_desc = fp; source_desc = fp;
@ -1130,7 +1130,7 @@ update_v2_networkstatus_cache_downloads(time_t now)
{ {
char resource[HEX_DIGEST_LEN+6]; /* fp/hexdigit.z\0 */ char resource[HEX_DIGEST_LEN+6]; /* fp/hexdigit.z\0 */
tor_addr_t addr; tor_addr_t addr;
if (!(ds->type & V2_AUTHORITY)) if (!(ds->type & V2_DIRINFO))
continue; continue;
if (router_digest_is_me(ds->digest)) if (router_digest_is_me(ds->digest))
continue; continue;

View File

@ -2090,23 +2090,24 @@ typedef struct authority_cert_t {
uint8_t is_cross_certified; uint8_t is_cross_certified;
} authority_cert_t; } authority_cert_t;
/** Bitfield enum type listing types of directory authority/directory /** Bitfield enum type listing types of information that directory authorities
* server. */ * can be authoritative about, and that directory caches may or may not cache.
*/
typedef enum { typedef enum {
NO_AUTHORITY = 0, NO_DIRINFO = 0,
/** Serves/signs v1 directory information: Big lists of routers, and short /** Serves/signs v1 directory information: Big lists of routers, and short
* routerstatus documents. */ * routerstatus documents. */
V1_AUTHORITY = 1 << 0, V1_DIRINFO = 1 << 0,
/** Serves/signs v2 directory information: i.e. v2 networkstatus documents */ /** Serves/signs v2 directory information: i.e. v2 networkstatus documents */
V2_AUTHORITY = 1 << 1, V2_DIRINFO = 1 << 1,
/** Serves/signs v3 directory information: votes, consensuses, certs */ /** Serves/signs v3 directory information: votes, consensuses, certs */
V3_AUTHORITY = 1 << 2, V3_DIRINFO = 1 << 2,
/** Serves hidden service descriptors. */ /** Serves hidden service descriptors. */
HIDSERV_AUTHORITY = 1 << 3, HIDSERV_DIRINFO = 1 << 3,
/** Serves bridge descriptors. */ /** Serves bridge descriptors. */
BRIDGE_AUTHORITY = 1 << 4, BRIDGE_DIRINFO = 1 << 4,
/** Serves extrainfo documents. (XXX Not precisely an authority type)*/ /** Serves extrainfo documents. */
EXTRAINFO_CACHE = 1 << 5, EXTRAINFO_DIRINFO = 1 << 5,
} dirinfo_type_t; } dirinfo_type_t;
#define CRYPT_PATH_MAGIC 0x70127012u #define CRYPT_PATH_MAGIC 0x70127012u

View File

@ -697,11 +697,11 @@ init_keys(void)
} }
/* 6b. [authdirserver only] add own key to approved directories. */ /* 6b. [authdirserver only] add own key to approved directories. */
crypto_pk_get_digest(get_server_identity_key(), digest); crypto_pk_get_digest(get_server_identity_key(), digest);
type = ((options->V1AuthoritativeDir ? V1_AUTHORITY : NO_AUTHORITY) | type = ((options->V1AuthoritativeDir ? V1_DIRINFO : NO_DIRINFO) |
(options->V2AuthoritativeDir ? V2_AUTHORITY : NO_AUTHORITY) | (options->V2AuthoritativeDir ? V2_DIRINFO : NO_DIRINFO) |
(options->V3AuthoritativeDir ? V3_AUTHORITY : NO_AUTHORITY) | (options->V3AuthoritativeDir ? V3_DIRINFO : NO_DIRINFO) |
(options->BridgeAuthoritativeDir ? BRIDGE_AUTHORITY : NO_AUTHORITY) | (options->BridgeAuthoritativeDir ? BRIDGE_DIRINFO : NO_DIRINFO) |
(options->HSAuthoritativeDir ? HIDSERV_AUTHORITY : NO_AUTHORITY)); (options->HSAuthoritativeDir ? HIDSERV_DIRINFO : NO_DIRINFO));
ds = router_get_trusteddirserver_by_digest(digest); ds = router_get_trusteddirserver_by_digest(digest);
if (!ds) { if (!ds) {
@ -723,7 +723,7 @@ init_keys(void)
type, ds->type); type, ds->type);
ds->type = type; ds->type = type;
} }
if (v3_digest_set && (ds->type & V3_AUTHORITY) && if (v3_digest_set && (ds->type & V3_DIRINFO) &&
memcmp(v3_digest, ds->v3_identity_digest, DIGEST_LEN)) { memcmp(v3_digest, ds->v3_identity_digest, DIGEST_LEN)) {
log_warn(LD_DIR, "V3 identity key does not match identity declared in " log_warn(LD_DIR, "V3 identity key does not match identity declared in "
"DirServer line. Adjusting."); "DirServer line. Adjusting.");
@ -910,7 +910,7 @@ router_orport_found_reachable(void)
if (!can_reach_or_port && me) { if (!can_reach_or_port && me) {
log_notice(LD_OR,"Self-testing indicates your ORPort is reachable from " log_notice(LD_OR,"Self-testing indicates your ORPort is reachable from "
"the outside. Excellent.%s", "the outside. Excellent.%s",
get_options()->_PublishServerDescriptor != NO_AUTHORITY ? get_options()->_PublishServerDescriptor != NO_DIRINFO ?
" Publishing server descriptor." : ""); " Publishing server descriptor." : "");
can_reach_or_port = 1; can_reach_or_port = 1;
mark_my_descriptor_dirty(); mark_my_descriptor_dirty();
@ -1135,7 +1135,7 @@ decide_if_publishable_server(void)
if (options->ClientOnly) if (options->ClientOnly)
return 0; return 0;
if (options->_PublishServerDescriptor == NO_AUTHORITY) if (options->_PublishServerDescriptor == NO_DIRINFO)
return 0; return 0;
if (!server_mode(options)) if (!server_mode(options))
return 0; return 0;
@ -1203,7 +1203,7 @@ router_upload_dir_desc_to_dirservers(int force)
return; return;
} }
ei = router_get_my_extrainfo(); ei = router_get_my_extrainfo();
if (auth == NO_AUTHORITY) if (auth == NO_DIRINFO)
return; return;
if (!force && !desc_needs_upload) if (!force && !desc_needs_upload)
return; return;
@ -1220,7 +1220,7 @@ router_upload_dir_desc_to_dirservers(int force)
msg[desc_len+extra_len] = 0; msg[desc_len+extra_len] = 0;
directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_DIR, directory_post_to_dirservers(DIR_PURPOSE_UPLOAD_DIR,
(auth & BRIDGE_AUTHORITY) ? (auth & BRIDGE_DIRINFO) ?
ROUTER_PURPOSE_BRIDGE : ROUTER_PURPOSE_BRIDGE :
ROUTER_PURPOSE_GENERAL, ROUTER_PURPOSE_GENERAL,
auth, msg, desc_len, extra_len); auth, msg, desc_len, extra_len);

View File

@ -120,7 +120,7 @@ get_n_authorities(dirinfo_type_t type)
return n; return n;
} }
#define get_n_v2_authorities() get_n_authorities(V2_AUTHORITY) #define get_n_v2_authorities() get_n_authorities(V2_DIRINFO)
/** Helper: Return the cert_list_t for an authority whose authority ID is /** Helper: Return the cert_list_t for an authority whose authority ID is
* <b>id_digest</b>, allocating a new list if necessary. */ * <b>id_digest</b>, allocating a new list if necessary. */
@ -518,7 +518,7 @@ authority_certs_fetch_missing(networkstatus_t *status, time_t now)
} }
SMARTLIST_FOREACH_BEGIN(trusted_dir_servers, trusted_dir_server_t *, ds) { SMARTLIST_FOREACH_BEGIN(trusted_dir_servers, trusted_dir_server_t *, ds) {
int found = 0; int found = 0;
if (!(ds->type & V3_AUTHORITY)) if (!(ds->type & V3_DIRINFO))
continue; continue;
if (smartlist_digest_isin(missing_digests, ds->v3_identity_digest)) if (smartlist_digest_isin(missing_digests, ds->v3_identity_digest))
continue; continue;
@ -976,7 +976,7 @@ router_get_my_share_of_directory_requests(double *v2_share_out,
/* XXXX This is a bit of a kludge */ /* XXXX This is a bit of a kludge */
if (rs->is_v2_dir) { if (rs->is_v2_dir) {
sl_last_total_weighted_bw = 0; sl_last_total_weighted_bw = 0;
router_pick_directory_server(V2_AUTHORITY, pds_flags); router_pick_directory_server(V2_DIRINFO, pds_flags);
if (sl_last_total_weighted_bw != 0) { if (sl_last_total_weighted_bw != 0) {
*v2_share_out = U64_TO_DBL(sl_last_weighted_bw_of_me) / *v2_share_out = U64_TO_DBL(sl_last_weighted_bw_of_me) /
U64_TO_DBL(sl_last_total_weighted_bw); U64_TO_DBL(sl_last_total_weighted_bw);
@ -985,7 +985,7 @@ router_get_my_share_of_directory_requests(double *v2_share_out,
if (rs->version_supports_v3_dir) { if (rs->version_supports_v3_dir) {
sl_last_total_weighted_bw = 0; sl_last_total_weighted_bw = 0;
router_pick_directory_server(V3_AUTHORITY, pds_flags); router_pick_directory_server(V3_DIRINFO, pds_flags);
if (sl_last_total_weighted_bw != 0) { if (sl_last_total_weighted_bw != 0) {
*v3_share_out = U64_TO_DBL(sl_last_weighted_bw_of_me) / *v3_share_out = U64_TO_DBL(sl_last_weighted_bw_of_me) /
U64_TO_DBL(sl_last_total_weighted_bw); U64_TO_DBL(sl_last_total_weighted_bw);
@ -1026,7 +1026,7 @@ trusteddirserver_get_by_v3_auth_digest(const char *digest)
SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds, SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds,
{ {
if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN) && if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN) &&
(ds->type & V3_AUTHORITY)) (ds->type & V3_DIRINFO))
return ds; return ds;
}); });
@ -1115,16 +1115,16 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags)
continue; continue;
if (requireother && router_digest_is_me(node->identity)) if (requireother && router_digest_is_me(node->identity))
continue; continue;
if (type & V3_AUTHORITY) { if (type & V3_DIRINFO) {
if (!(status->version_supports_v3_dir || if (!(status->version_supports_v3_dir ||
router_digest_is_trusted_dir_type(node->identity, router_digest_is_trusted_dir_type(node->identity,
V3_AUTHORITY))) V3_DIRINFO)))
continue; continue;
} }
is_trusted = router_digest_is_trusted_dir(node->identity); is_trusted = router_digest_is_trusted_dir(node->identity);
if ((type & V2_AUTHORITY) && !(node->rs->is_v2_dir || is_trusted)) if ((type & V2_DIRINFO) && !(node->rs->is_v2_dir || is_trusted))
continue; continue;
if ((type & EXTRAINFO_CACHE) && if ((type & EXTRAINFO_DIRINFO) &&
!router_supports_extrainfo(node->identity, 0)) !router_supports_extrainfo(node->identity, 0))
continue; continue;
if (try_excluding && options->ExcludeNodes && if (try_excluding && options->ExcludeNodes &&
@ -1227,7 +1227,7 @@ router_pick_trusteddirserver_impl(dirinfo_type_t type, int flags,
if (!d->is_running) continue; if (!d->is_running) continue;
if ((type & d->type) == 0) if ((type & d->type) == 0)
continue; continue;
if ((type & EXTRAINFO_CACHE) && if ((type & EXTRAINFO_DIRINFO) &&
!router_supports_extrainfo(d->digest, 1)) !router_supports_extrainfo(d->digest, 1))
continue; continue;
if (requireother && me && router_digest_is_me(d->digest)) if (requireother && me && router_digest_is_me(d->digest))
@ -4084,7 +4084,7 @@ add_trusted_dir_server(const char *nickname, const char *address,
ent->is_running = 1; ent->is_running = 1;
ent->type = type; ent->type = type;
memcpy(ent->digest, digest, DIGEST_LEN); memcpy(ent->digest, digest, DIGEST_LEN);
if (v3_auth_digest && (type & V3_AUTHORITY)) if (v3_auth_digest && (type & V3_DIRINFO))
memcpy(ent->v3_identity_digest, v3_auth_digest, DIGEST_LEN); memcpy(ent->v3_identity_digest, v3_auth_digest, DIGEST_LEN);
dlen = 64 + strlen(hostname) + (nickname?strlen(nickname):0); dlen = 64 + strlen(hostname) + (nickname?strlen(nickname):0);
@ -4163,7 +4163,7 @@ int
any_trusted_dir_is_v1_authority(void) any_trusted_dir_is_v1_authority(void)
{ {
if (trusted_dir_servers) if (trusted_dir_servers)
return get_n_authorities(V1_AUTHORITY) > 0; return get_n_authorities(V1_DIRINFO) > 0;
return 0; return 0;
} }

View File

@ -60,7 +60,7 @@ int router_digest_version_as_new_as(const char *digest, const char *cutoff);
int router_digest_is_trusted_dir_type(const char *digest, int router_digest_is_trusted_dir_type(const char *digest,
dirinfo_type_t type); dirinfo_type_t type);
#define router_digest_is_trusted_dir(d) \ #define router_digest_is_trusted_dir(d) \
router_digest_is_trusted_dir_type((d), NO_AUTHORITY) router_digest_is_trusted_dir_type((d), NO_DIRINFO)
int router_addr_is_trusted_dir(uint32_t addr); int router_addr_is_trusted_dir(uint32_t addr);
int hexdigest_to_digest(const char *hexdigest, char *digest); int hexdigest_to_digest(const char *hexdigest, char *digest);