Stop assuming every authority is a v1 authority

svn:r6377
This commit is contained in:
Peter Palfrader 2006-04-10 21:29:29 +00:00
parent 1fbc74661f
commit beb9e0721a
4 changed files with 9 additions and 9 deletions

View File

@ -3140,7 +3140,7 @@ parse_dir_server_line(const char *line, int validate_only)
char *addrport=NULL, *address=NULL, *nickname=NULL, *fingerprint=NULL; char *addrport=NULL, *address=NULL, *nickname=NULL, *fingerprint=NULL;
uint16_t port; uint16_t port;
char digest[DIGEST_LEN]; char digest[DIGEST_LEN];
int supports_v1 = 1; /*XXXX011 change default when clients support v2. */ int is_v1_authority = 0;
items = smartlist_create(); items = smartlist_create();
smartlist_split_string(items, line, NULL, smartlist_split_string(items, line, NULL,
@ -3159,7 +3159,7 @@ parse_dir_server_line(const char *line, int validate_only)
if (!strcmp(smartlist_get(items, 0), "v1")) { if (!strcmp(smartlist_get(items, 0), "v1")) {
char *v1 = smartlist_get(items, 0); char *v1 = smartlist_get(items, 0);
tor_free(v1); tor_free(v1);
supports_v1 = 1; is_v1_authority = 1;
smartlist_del_keeporder(items, 0); smartlist_del_keeporder(items, 0);
} }
@ -3191,7 +3191,7 @@ parse_dir_server_line(const char *line, int validate_only)
if (!validate_only) { if (!validate_only) {
log_debug(LD_DIR, "Trusted dirserver at %s:%d (%s)", address, (int)port, log_debug(LD_DIR, "Trusted dirserver at %s:%d (%s)", address, (int)port,
(char*)smartlist_get(items,1)); (char*)smartlist_get(items,1));
add_trusted_dir_server(nickname, address, port, digest, supports_v1); add_trusted_dir_server(nickname, address, port, digest, is_v1_authority);
} }
r = 0; r = 0;

View File

@ -792,7 +792,7 @@ run_scheduled_events(time_t now)
if (options->DirPort && !options->V1AuthoritativeDir) { if (options->DirPort && !options->V1AuthoritativeDir) {
/* XXX actually, we should only do this if we want to advertise /* XXX actually, we should only do this if we want to advertise
* our dirport. not simply if we configured one. -RD */ * our dirport. not simply if we configured one. -RD */
if (any_trusted_dir_supports_v1()) if (any_trusted_dir_is_v1_authority())
directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR, NULL, 1); directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR, NULL, 1);
} }

View File

@ -2339,9 +2339,9 @@ int router_exit_policy_rejects_all(routerinfo_t *router);
void add_trusted_dir_server(const char *nickname, void add_trusted_dir_server(const char *nickname,
const char *address, uint16_t port, const char *address, uint16_t port,
const char *digest, int supports_v1); const char *digest, int is_v1_authority);
void clear_trusted_dir_servers(void); void clear_trusted_dir_servers(void);
int any_trusted_dir_supports_v1(void); int any_trusted_dir_is_v1_authority(void);
networkstatus_t *networkstatus_get_by_digest(const char *digest); networkstatus_t *networkstatus_get_by_digest(const char *digest);
local_routerstatus_t *router_get_combined_status_by_digest(const char *digest); local_routerstatus_t *router_get_combined_status_by_digest(const char *digest);
void update_networkstatus_downloads(time_t now); void update_networkstatus_downloads(time_t now);

View File

@ -2487,7 +2487,7 @@ router_exit_policy_rejects_all(routerinfo_t *router)
* <b>address</b> is NULL, add ourself. */ * <b>address</b> is NULL, add ourself. */
void void
add_trusted_dir_server(const char *nickname, const char *address, add_trusted_dir_server(const char *nickname, const char *address,
uint16_t port, const char *digest, int supports_v1) uint16_t port, const char *digest, int is_v1_authority)
{ {
trusted_dir_server_t *ent; trusted_dir_server_t *ent;
uint32_t a; uint32_t a;
@ -2520,7 +2520,7 @@ add_trusted_dir_server(const char *nickname, const char *address,
ent->addr = a; ent->addr = a;
ent->dir_port = port; ent->dir_port = port;
ent->is_running = 1; ent->is_running = 1;
ent->is_v1_authority = supports_v1; ent->is_v1_authority = is_v1_authority;
memcpy(ent->digest, digest, DIGEST_LEN); memcpy(ent->digest, digest, DIGEST_LEN);
dlen = 64 + strlen(hostname) + (nickname?strlen(nickname):0); dlen = 64 + strlen(hostname) + (nickname?strlen(nickname):0);
@ -2570,7 +2570,7 @@ clear_trusted_dir_servers(void)
/** Return 1 if any trusted dir server supports v1 directories, /** Return 1 if any trusted dir server supports v1 directories,
* else return 0. */ * else return 0. */
int int
any_trusted_dir_supports_v1(void) any_trusted_dir_is_v1_authority(void)
{ {
if (trusted_dir_servers) if (trusted_dir_servers)
SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ent, SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ent,