mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
Clean up the "add myself as a trusted dirserver" code.
svn:r4849
This commit is contained in:
parent
43488472ec
commit
7f78be1659
@ -368,7 +368,7 @@ init_keys(void)
|
||||
/* 6b. [authdirserver only] add own key to approved directories. */
|
||||
crypto_pk_get_digest(get_identity_key(), digest);
|
||||
if (!router_digest_is_trusted_dir(digest)) {
|
||||
add_trusted_dir_server(options->Address, (uint16_t)options->DirPort, digest);
|
||||
add_trusted_dir_server(NULL, (uint16_t)options->DirPort, digest);
|
||||
}
|
||||
/* 7. [authdirserver only] load old directory, if it's there */
|
||||
tor_snprintf(keydir,sizeof(keydir),"%s/cached-directory", datadir);
|
||||
|
@ -1452,17 +1452,19 @@ router_update_status_from_smartlist(routerinfo_t *router,
|
||||
}
|
||||
|
||||
/** Add to the list of authorized directory servers one at
|
||||
* <b>address</b>:<b>port</b>, with identity key <b>digest</b>. */
|
||||
* <b>address</b>:<b>port</b>, with identity key <b>digest</b>. If
|
||||
* <b>address</b> is NULL, add ourself. */
|
||||
void
|
||||
add_trusted_dir_server(const char *address, uint16_t port, const char *digest)
|
||||
{
|
||||
trusted_dir_server_t *ent;
|
||||
uint32_t a;
|
||||
char *hostname = NULL;
|
||||
if (!trusted_dir_servers)
|
||||
trusted_dir_servers = smartlist_create();
|
||||
|
||||
if (!address) { /* need to guess */
|
||||
if (resolve_my_address(get_options(), &a, NULL) < 0) {
|
||||
if (!address) { /* The address is us; we should guess. */
|
||||
if (resolve_my_address(get_options(), &a, &hostname) < 0) {
|
||||
log_fn(LOG_WARN, "Couldn't find a suitable address. Returning.");
|
||||
return;
|
||||
}
|
||||
@ -1472,15 +1474,12 @@ add_trusted_dir_server(const char *address, uint16_t port, const char *digest)
|
||||
address);
|
||||
return;
|
||||
}
|
||||
hostname = tor_strdup(address);
|
||||
a = ntohl(a);
|
||||
}
|
||||
|
||||
ent = tor_malloc(sizeof(trusted_dir_server_t));
|
||||
if (address) {
|
||||
ent->address = tor_strdup(address);
|
||||
} else {
|
||||
ent->address = tor_dup_addr(a);
|
||||
}
|
||||
ent->address = hostname;
|
||||
ent->addr = a;
|
||||
ent->dir_port = port;
|
||||
ent->is_running = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user