Revisit flags passed to entry_is_live() around entrynodes.c
It seems that we are almost always passing need_capacity=True
to entry_is_live()
.
The only case where we don't, is in choose_random_entry_impl()
where we actually pick an entry guard. In that case, we pass whatever cpath_build_state_t.need_capacity
is set to (which makes sense).
However, in other calls, like the one at entry_guard_register_connect_status()
, we always call entry_is_live()
with need_capacity
set to true. Is this needed?
In entry_guard_register_connect_status()
, if we just connected for the first time to a new guard, we re-activate all the previous live guards since it might be a sign that our network was down and it just came back up. However, since entry_is_live()
is used with need_capacity
we only reactivate the Fast guards.
However, as I understand it, there is no requirement that guards need to be Fast. So it might be the case, that if our primary guard is not fast, we don't reactivate it.