mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Remove version_known, and subtly change the meaning of protocols_known
This commit is contained in:
@@ -1456,8 +1456,9 @@ routerstatus_has_changed(const routerstatus_t *a, const routerstatus_t *b)
|
||||
a->is_valid != b->is_valid ||
|
||||
a->is_possible_guard != b->is_possible_guard ||
|
||||
a->is_bad_exit != b->is_bad_exit ||
|
||||
a->is_hs_dir != b->is_hs_dir ||
|
||||
a->version_known != b->version_known;
|
||||
a->is_hs_dir != b->is_hs_dir;
|
||||
// XXXX this function needs a huge refactoring; it has gotten out
|
||||
// XXXX of sync with routerstatus_t, and it will do so again.
|
||||
}
|
||||
|
||||
/** Notify controllers of any router status entries that changed between
|
||||
|
||||
+2
-6
@@ -2193,12 +2193,8 @@ typedef struct routerstatus_t {
|
||||
unsigned int is_v2_dir:1; /** True iff this router publishes an open DirPort
|
||||
* or it claims to accept tunnelled dir requests.
|
||||
*/
|
||||
/** True iff we know version info for this router. (i.e., a "v" entry was
|
||||
* included.) We'll replace all these with a big tor_version_t or a char[]
|
||||
* if the number of traits we care about ever becomes incredibly big. */
|
||||
unsigned int version_known:1;
|
||||
|
||||
/** True iff we have a proto line for this router.*/
|
||||
/** True iff we have a proto line for this router, or a versions line
|
||||
* from which we could infer the protocols. */
|
||||
unsigned int protocols_known:1;
|
||||
|
||||
/** True iff this router has a version or protocol list that allows it to
|
||||
|
||||
+3
-2
@@ -5526,7 +5526,8 @@ routerinfo_has_curve25519_onion_key(const routerinfo_t *ri)
|
||||
}
|
||||
|
||||
/* Is rs running a tor version known to support ntor?
|
||||
* If allow_unknown_versions is true, return true if the version is unknown.
|
||||
* If allow_unknown_versions is true, return true if we can't tell
|
||||
* (from a versions line or a protocols line) whether it supports ntor.
|
||||
* Otherwise, return false if the version is unknown. */
|
||||
int
|
||||
routerstatus_version_supports_ntor(const routerstatus_t *rs,
|
||||
@@ -5536,7 +5537,7 @@ routerstatus_version_supports_ntor(const routerstatus_t *rs,
|
||||
return allow_unknown_versions;
|
||||
}
|
||||
|
||||
if (!rs->version_known && !rs->protocols_known) {
|
||||
if (!rs->protocols_known) {
|
||||
return allow_unknown_versions;
|
||||
}
|
||||
|
||||
|
||||
@@ -2914,13 +2914,13 @@ routerstatus_parse_entry_from_string(memarea_t *area,
|
||||
}
|
||||
if ((tok = find_opt_by_keyword(tokens, K_V))) {
|
||||
tor_assert(tok->n_args == 1);
|
||||
rs->version_known = 1;
|
||||
if (!strcmpstart(tok->args[0], "Tor ") && !found_protocol_list) {
|
||||
/* We only do version checks like this in the case where
|
||||
* the version is a "Tor" version, and where there is no
|
||||
* list of protocol versions that we should be looking at instead. */
|
||||
rs->supports_extend2_cells =
|
||||
tor_version_as_new_as(tok->args[0], "0.2.4.8-alpha");
|
||||
rs->protocols_known = 1;
|
||||
}
|
||||
if (vote_rs) {
|
||||
vote_rs->version = tor_strdup(tok->args[0]);
|
||||
|
||||
Reference in New Issue
Block a user