Revisit flags passed to entry_is_live() around entrynodes.c
It seems that we are almost always passing
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
need_capacity set to true. Is this needed?
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.