mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +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. */
|
* this routerinfo. Used only during voting. */
|
||||||
unsigned int omit_from_vote:1;
|
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
|
/** 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
|
* from a directory server as usual, or we're an authority and a server
|
||||||
* uploaded it. */
|
* uploaded it. */
|
||||||
|
@ -379,6 +379,10 @@ static int check_signature_token(const char *digest,
|
|||||||
int flags,
|
int flags,
|
||||||
const char *doctype);
|
const char *doctype);
|
||||||
|
|
||||||
|
static void summarize_protover_flags(protover_summary_flags_t *out,
|
||||||
|
const char *protocols,
|
||||||
|
const char *version);
|
||||||
|
|
||||||
#undef DEBUG_AREA_ALLOC
|
#undef DEBUG_AREA_ALLOC
|
||||||
|
|
||||||
#ifdef 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))) {
|
if ((tok = find_opt_by_keyword(tokens, K_PROTO))) {
|
||||||
router->protocol_list = tor_strdup(tok->args[0]);
|
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))) {
|
if ((tok = find_opt_by_keyword(tokens, K_CONTACT))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user