mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
We no longer generate v0 directories. Remove the code to do so
This commit is contained in:
parent
57bf8bb263
commit
ce31db4326
@ -985,94 +985,6 @@ router_is_active(const routerinfo_t *ri, const node_t *node, time_t now)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/** Generate a new v1 directory and write it into a newly allocated string.
|
||||
* Point *<b>dir_out</b> to the allocated string. Sign the
|
||||
* directory with <b>private_key</b>. Return 0 on success, -1 on
|
||||
* failure. If <b>complete</b> is set, give us all the descriptors;
|
||||
* otherwise leave out non-running and non-valid ones.
|
||||
*/
|
||||
int
|
||||
dirserv_dump_directory_to_string(char **dir_out,
|
||||
crypto_pk_t *private_key)
|
||||
{
|
||||
/* XXXX 024 Get rid of this function if we can confirm that nobody's
|
||||
* fetching these any longer */
|
||||
char *cp;
|
||||
char *identity_pkey; /* Identity key, DER64-encoded. */
|
||||
char *recommended_versions;
|
||||
char digest[DIGEST_LEN];
|
||||
char published[ISO_TIME_LEN+1];
|
||||
char *buf = NULL;
|
||||
size_t buf_len;
|
||||
size_t identity_pkey_len;
|
||||
time_t now = time(NULL);
|
||||
|
||||
tor_assert(dir_out);
|
||||
*dir_out = NULL;
|
||||
|
||||
if (crypto_pk_write_public_key_to_string(private_key,&identity_pkey,
|
||||
&identity_pkey_len)<0) {
|
||||
log_warn(LD_BUG,"write identity_pkey to string failed!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
recommended_versions =
|
||||
format_versions_list(get_options()->RecommendedVersions);
|
||||
|
||||
format_iso_time(published, now);
|
||||
|
||||
buf_len = 2048+strlen(recommended_versions);
|
||||
|
||||
buf = tor_malloc(buf_len);
|
||||
/* We'll be comparing against buf_len throughout the rest of the
|
||||
function, though strictly speaking we shouldn't be able to exceed
|
||||
it. This is C, after all, so we may as well check for buffer
|
||||
overruns.*/
|
||||
|
||||
tor_snprintf(buf, buf_len,
|
||||
"signed-directory\n"
|
||||
"published %s\n"
|
||||
"recommended-software %s\n"
|
||||
"router-status %s\n"
|
||||
"dir-signing-key\n%s\n",
|
||||
published, recommended_versions, "",
|
||||
identity_pkey);
|
||||
|
||||
tor_free(recommended_versions);
|
||||
tor_free(identity_pkey);
|
||||
|
||||
cp = buf + strlen(buf);
|
||||
*cp = '\0';
|
||||
|
||||
/* These multiple strlcat calls are inefficient, but dwarfed by the RSA
|
||||
signature. */
|
||||
if (strlcat(buf, "directory-signature ", buf_len) >= buf_len)
|
||||
goto truncated;
|
||||
if (strlcat(buf, get_options()->Nickname, buf_len) >= buf_len)
|
||||
goto truncated;
|
||||
if (strlcat(buf, "\n", buf_len) >= buf_len)
|
||||
goto truncated;
|
||||
|
||||
if (router_get_dir_hash(buf,digest)) {
|
||||
log_warn(LD_BUG,"couldn't compute digest");
|
||||
tor_free(buf);
|
||||
return -1;
|
||||
}
|
||||
note_crypto_pk_op(SIGN_DIR);
|
||||
if (router_append_dirobj_signature(buf,buf_len,digest,DIGEST_LEN,
|
||||
private_key)<0) {
|
||||
tor_free(buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*dir_out = buf;
|
||||
return 0;
|
||||
truncated:
|
||||
log_warn(LD_BUG,"tried to exceed string length.");
|
||||
tor_free(buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/********************************************************************/
|
||||
|
||||
/* A set of functions to answer questions about how we'd like to behave
|
||||
|
@ -47,8 +47,6 @@ enum was_router_added_t dirserv_add_descriptor(routerinfo_t *ri,
|
||||
void dirserv_set_router_is_running(routerinfo_t *router, time_t now);
|
||||
int list_server_status_v1(smartlist_t *routers, char **router_status_out,
|
||||
int for_controller);
|
||||
int dirserv_dump_directory_to_string(char **dir_out,
|
||||
crypto_pk_t *private_key);
|
||||
char *dirserv_get_flag_thresholds_line(void);
|
||||
void dirserv_compute_bridge_flag_thresholds(void);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user