mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Stop assuming every authority is a v1 authority
svn:r6377
This commit is contained in:
parent
1fbc74661f
commit
beb9e0721a
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user