mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 20:33:31 +01:00
Also cache the protover summary in the routerinfo_t, if we're using that
This commit is contained in:
parent
7792be2d44
commit
92496a739a
@ -2299,6 +2299,9 @@ typedef struct {
|
||||
* this routerinfo. Used only during voting. */
|
||||
unsigned int omit_from_vote:1;
|
||||
|
||||
/** Flags to summarize the protocol versions for this routerinfo_t. */
|
||||
protover_summary_flags_t pv;
|
||||
|
||||
/** Tor can use this router for general positions in circuits; we got it
|
||||
* from a directory server as usual, or we're an authority and a server
|
||||
* uploaded it. */
|
||||
|
@ -379,6 +379,10 @@ static int check_signature_token(const char *digest,
|
||||
int flags,
|
||||
const char *doctype);
|
||||
|
||||
static void summarize_protover_flags(protover_summary_flags_t *out,
|
||||
const char *protocols,
|
||||
const char *version);
|
||||
|
||||
#undef DEBUG_AREA_ALLOC
|
||||
|
||||
#ifdef DEBUG_AREA_ALLOC
|
||||
@ -1895,12 +1899,19 @@ router_parse_entry_from_string(const char *s, const char *end,
|
||||
}
|
||||
}
|
||||
|
||||
if ((tok = find_opt_by_keyword(tokens, K_PLATFORM))) {
|
||||
router->platform = tor_strdup(tok->args[0]);
|
||||
}
|
||||
{
|
||||
const char *version = NULL, *protocols = NULL;
|
||||
if ((tok = find_opt_by_keyword(tokens, K_PLATFORM))) {
|
||||
router->platform = tor_strdup(tok->args[0]);
|
||||
version = tok->args[0];
|
||||
}
|
||||
|
||||
if ((tok = find_opt_by_keyword(tokens, K_PROTO))) {
|
||||
router->protocol_list = tor_strdup(tok->args[0]);
|
||||
if ((tok = find_opt_by_keyword(tokens, K_PROTO))) {
|
||||
router->protocol_list = tor_strdup(tok->args[0]);
|
||||
protocols = tok->args[0];
|
||||
}
|
||||
|
||||
summarize_protover_flags(&router->pv, protocols, version);
|
||||
}
|
||||
|
||||
if ((tok = find_opt_by_keyword(tokens, K_CONTACT))) {
|
||||
|
Loading…
Reference in New Issue
Block a user