mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
if we ever have an old bridge, never again use microdescs
should reduce the risk of oscillation if our 0.2.2 bridge comes and goes
This commit is contained in:
parent
a0f0897795
commit
b1ee1927b1
@ -5328,7 +5328,7 @@ entries_retry_all(const or_options_t *options)
|
|||||||
entries_retry_helper(options, 1);
|
entries_retry_helper(options, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return true if one of our bridges is running a Tor version that can't
|
/** Return true if we've ever had a bridge running a Tor version that can't
|
||||||
* provide microdescriptors to us. In that case fall back to asking for
|
* provide microdescriptors to us. In that case fall back to asking for
|
||||||
* full descriptors. Eventually all bridges will support microdescriptors
|
* full descriptors. Eventually all bridges will support microdescriptors
|
||||||
* and we can take this check out; see bug 4013. */
|
* and we can take this check out; see bug 4013. */
|
||||||
@ -5336,8 +5336,11 @@ int
|
|||||||
any_bridges_dont_support_microdescriptors(void)
|
any_bridges_dont_support_microdescriptors(void)
|
||||||
{
|
{
|
||||||
const node_t *node;
|
const node_t *node;
|
||||||
|
static int ever_answered_yes = 0;
|
||||||
if (!get_options()->UseBridges || !entry_guards)
|
if (!get_options()->UseBridges || !entry_guards)
|
||||||
return 0;
|
return 0;
|
||||||
|
if (ever_answered_yes)
|
||||||
|
return 1; /* if we ever answer 'yes', always answer 'yes' */
|
||||||
SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, e) {
|
SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, e) {
|
||||||
node = node_get_by_id(e->identity);
|
node = node_get_by_id(e->identity);
|
||||||
if (node && node->ri &&
|
if (node && node->ri &&
|
||||||
@ -5346,6 +5349,7 @@ any_bridges_dont_support_microdescriptors(void)
|
|||||||
/* This is one of our current bridges, and we know enough about
|
/* This is one of our current bridges, and we know enough about
|
||||||
* it to know that it won't be able to answer our microdescriptor
|
* it to know that it won't be able to answer our microdescriptor
|
||||||
* questions. */
|
* questions. */
|
||||||
|
ever_answered_yes = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
} SMARTLIST_FOREACH_END(e);
|
} SMARTLIST_FOREACH_END(e);
|
||||||
|
Loading…
Reference in New Issue
Block a user