summaryrefslogtreecommitdiff
path: root/crates/tor-circmgr/src/hspool.rs
Commit message (Collapse)AuthorAgeFilesLines
* Refactor ClientCirc APIs to use Arc<ClientCirc>.Nick Mathewson2023-05-161-3/+3
| | | | | | | | | | | | Now ClientCirc is no longer `Clone`, and the things that need it to be `Clone` instead return and use an Arc<ClientCirc> We're doing this so that ClientCirc can participate in the RPC system, and so that its semantics are more obvious. Closes #846. Thanks to the type system, this was a much simpler refactoring than I had feared it would be.
* hspool: Accept any T:CircTarget.Nick Mathewson2023-05-101-9/+26
| | | | | | Previously, we only accepted an OwnedCircTarget, which would have kept us from getting a circuit that was aimed at a specialized CircTarget that gave us LinkSpecs in a raw order.
* tor-circmgr: HsCircKind: derive EqIan Jackson2023-04-051-1/+1
|
* tor-circmgr: Make take_or_launch_stub_circuit future SendIan Jackson2023-03-301-2/+1
| | | | | thread_rng() isn't Send. We can fix this by not holding it over an await point.
* hspool: simplify loop and add a maximumNick Mathewson2023-03-221-41/+39
|
* hspool: Clarify/document more TODO HS items.Nick Mathewson2023-03-221-2/+8
|
* hspool: Tweak comments and add more TODOs.Nick Mathewson2023-03-221-10/+33
|
* circmgr: hspool now launches circuits in the background.Nick Mathewson2023-03-221-11/+157
| | | | | | The prediction and scheduling logic here is quite primitive; we should probably refactor it considerably. This should be good enough for now, though.
* circmgr: Add an actual pool to HsCircPool.Nick Mathewson2023-03-221-6/+121
| | | | | | | | We now have support for a pool of pre-build circuits that we can use for HS-related purposes, and we take circuits from this pool as needed. Nothing populates or cleans the circuit pool yet.
* circmgr: Begin an HS circuit pool structureNick Mathewson2023-03-221-0/+150
This is now enough to launch circuits on demand. It still needs to pre-build the first three hops, and to retry on failure.