tor-circmgr: Implement vanguard path selection in HsPathBuilder.
This is the first draft of the vanguards path selection implementation in HsPathBuilder
(see VanguardHsPathBuilder
).
To distinguish STUB
circuits from STUB+
circuits, I've replaced ClientCirc
with a new HsCircStub
type throughout the hspool
module. HsCircStub
is a wrapper around a ClientCirc
and HsCircStubKind
, which specifies whether the circuit stub is a regular stub (STUB
), or an extended stub (STUB+
).
I've added TODO HS-VANGUARDS
in all the places in tor-circmgr
where the implementation is incomplete (or missing, even).
There is now a code smell around the AnonymousPathBuilder
trait I added in !2038 (merged) (it's pointed out in a TODO HS-VANGUARDS
in 5fb8979a). If everything else looks good, I can refactor that in a separate MR (after this one lands).
Closes #1276 (closed), #1274 (closed), #1279 (closed)