summaryrefslogtreecommitdiff
path: root/crates/tor-circmgr
Commit message (Collapse)AuthorAgeFilesLines
* Update unstable `tor/arti-*` crates to 0.17.0.Nick Mathewson2024-04-021-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done with: ``` CRATES=" tor-basic-utils tor-async-utils tor-error tor-config tor-events tor-units tor-geoip tor-rtcompat tor-rtmock tor-log-ratelim tor-rpcbase tor-llcrypto tor-protover tor-bytes tor-hscrypto tor-hspow tor-socksproto tor-checkable tor-cert tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-relay-selection tor-congestion tor-persist tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-config arti-hyper arti-bench arti-testing " for crate in $CRATES; do cargo set-version -p "$crate" 0.17.0 done ```
* Bump patchlevel versions on non-{tor/arti} crates.Nick Mathewson2024-04-021-2/+2
| | | | | | | | | | | | | | | | These have all had backward-compatible changes. Generated with: ``` cargo set-version --bump patch -p fs-mistrust cargo set-version --bump patch -p test-temp-dir cargo set-version --bump patch -p fslock-guard cargo set-version --bump patch -p hashx cargo set-version --bump patch -p equix cargo set-version --bump patch -p caret cargo set-version --bump patch -p safelog cargo set-version --bump patch -p retry-error ```
* Run "fixup-features" in preparation for next release.Nick Mathewson2024-03-281-1/+1
|
* tor-circmgr: Fix a clippy warning.Gabriela Moldovan2024-03-211-2/+2
|
* tor-circmgr: If full vanguards are enabled, apply exclusions to the extra ↵Gabriela Moldovan2024-03-211-7/+7
| | | | hop too (fmt).
* tor-circmgr: If full vanguards are enabled, apply exclusions to the extra ↵Gabriela Moldovan2024-03-211-5/+9
| | | | hop too.
* tor-circmgr: Rewrite RelayExclusion building using exclude_identities().Gabriela Moldovan2024-03-211-19/+7
|
* tor-circmgr: Add function for building a RelayExclusion from a slice of relays.Gabriela Moldovan2024-03-211-0/+14
|
* tor-guardmgr: Make Vanguard::select_relay take a RelayExclusion.Gabriela Moldovan2024-03-211-3/+31
| | | | | | | This enables us to prevent the same relay from being picked in consecutive positions in a path. Part of #1340
* tor-circmgr: Clarify that stub circuits are sometimes 4-hop circuits.Gabriela Moldovan2024-03-201-1/+1
|
* tor-circmgr: Move HsPathBuilder trait impl closer to struct definition.Gabriela Moldovan2024-03-201-35/+35
| | | | This is just code movement to make the code a bit easier to follow.
* tor-circmgr: Add allow(unused) for functions only used on particular feature ↵Gabriela Moldovan2024-03-201-0/+2
| | | | sets.
* tor-circmgr: Move ExitPathBuilder::from_chosen_exit under the test mod.Gabriela Moldovan2024-03-201-10/+13
| | | | | `ExitPathBuilder` is now `pub(crate)`, so we need to move this under the `test` module to fix the "unused" clippy warning.
* tor-circmgr: Make the path module crate-private.Gabriela Moldovan2024-03-205-16/+24
| | | | | | | | | | | | | | We're not currently using any of the path builders outside of `tor-circmgr`, so let's make them crate-private for now. Care must be taken if/when we decide to make them public again. For instance, the `HsPathBuilder` exposes two path building functions, one that uses vanguards, and one that doesn't. We want to strongly encourage the use of the vanguards-aware version of the function whenever the `vanguards` feature is enabled, without breaking any of its existing non-vanguard uses. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2046#note_3010217
* tor-circmgr: Reference #1339 in a TODO.Gabriela Moldovan2024-03-201-0/+2
|
* tor-circmgr: Cross-reference the hspath docs in the HsCircStubKind docs.Gabriela Moldovan2024-03-201-1/+3
|
* tor-circmgr: Move HsPathBuilder docs to the module-level.Gabriela Moldovan2024-03-201-39/+41
|
* tor-circmgr: Remove unnecessary Result wrapping.Gabriela Moldovan2024-03-202-10/+9
|
* tor-circmgr: Unconditionally define VanguardMode.Gabriela Moldovan2024-03-202-16/+7
|
* tor-circmgr: Apply deferred cargo fmt.Gabriela Moldovan2024-03-201-9/+2
|
* tor-circmgr: Rename pick_path to pick_path_with_vanguards.Gabriela Moldovan2024-03-202-5/+5
| | | | | | When the `vanguards` feature is enabled, we define `pick_path_with_vanguards` instead of `pick_path`, rather than conditionally defining 2 different versions of the same function.
* tor-circmgr: Add an explanation and a couple of TODOs.Gabriela Moldovan2024-03-201-0/+8
|
* tor-circmgr: Clarify the TODO in launch_hs_circuits_as_needed.Gabriela Moldovan2024-03-201-2/+12
|
* tor-circmgr: Remove unnecessary AnonymousPathBuilder impl.Gabriela Moldovan2024-03-202-36/+30
| | | | | | | | Instead of the `B: AnonymousPathBuilder` argument, `select_guard` now takes separate arguments for the values it previously obtained by calling the methods of `AnonymousPathBuilder`. This enables us to remove the mostly unnecessary `AnonymousPathBuilder` implementation of `VanguardHsPathBuilder`.
* tor-circmgr: s/can_build/can_become.Gabriela Moldovan2024-03-201-2/+2
|
* tor-circmgr: Move match block to a separate function.Gabriela Moldovan2024-03-201-15/+20
|
* tor-circmgr: Remove an addressed TODO.Gabriela Moldovan2024-03-201-5/+0
| | | | | This was addressed by extracting the guard selection from `pick_path()` into `select_guard()`.
* tor-circmgr: Talk about vanguards path selection in HsPathBuilder docs.Gabriela Moldovan2024-03-201-3/+23
|
* tor-circmgr: Implement vanguard path selection in HsPathBuilder.Gabriela Moldovan2024-03-201-8/+120
| | | | Part of #1279
* tor-circmgr: Extract guard selection to a separate function.Gabriela Moldovan2024-03-201-43/+58
| | | | | We're about to reuse this in the path selection with vanguards implementation.
* tor-circmgr: Impl From<Vanguard> for MaybeOwnedRelay.Gabriela Moldovan2024-03-201-0/+10
| | | | | We will soon need this in `HsPathBuilder` (for building `TorPath`s that consist of vanguards).
* tor-circmgr: Remove unused lifetime.Gabriela Moldovan2024-03-201-1/+1
|
* tor-circmgr: Give pick_path a VanguardMgr (fmt).Gabriela Moldovan2024-03-201-4/+36
|
* tor-circmgr: Give pick_path a VanguardMgr.Gabriela Moldovan2024-03-203-6/+32
|
* tor-circmgr: Tell HsPathBuilder what kind of circuit stub is needed (fmt).Gabriela Moldovan2024-03-201-5/+2
|
* tor-circmgr: Tell HsPathBuilder what kind of circuit stub is needed.Gabriela Moldovan2024-03-204-7/+29
|
* tor-circmgr: Add more vanguards TODOs.Gabriela Moldovan2024-03-201-0/+2
|
* tor-circmgr: Handle the take_or_launch_stub_circuit result.Gabriela Moldovan2024-03-201-0/+13
|
* tor-circmgr: Make take_or_launch_stub_circuit vanguard-aware.Gabriela Moldovan2024-03-201-8/+59
|
* tor-circmgr: Add functions for checking if vanguards are enabled.Gabriela Moldovan2024-03-203-0/+29
|
* tor-circmgr: For each HS ClientCirc, note whether it's STUB or STUB+.Gabriela Moldovan2024-03-202-29/+102
| | | | Closes #1276
* tor-circmgr: Move pick_path out of AnonymousCircuitBuilder.Gabriela Moldovan2024-03-144-165/+193
| | | | This enables us to make `AnonymousCircuitBuilder` private.
* tor-circmgr: Improve the HsPathBuilder docs.Gabriela Moldovan2024-03-141-0/+20
|
* tor-circmgr: Remove unused require_stability.Gabriela Moldovan2024-03-142-16/+1
|
* tor-circmgr: Add a TODO about vanguards path selection.Gabriela Moldovan2024-03-141-0/+24
|
* tor-circmge: Remove AnyRelayForOnionService.Gabriela Moldovan2024-03-141-34/+0
|
* tor-circmgr: Use HsPathBuilder instead of ExitPathBuilder.Gabriela Moldovan2024-03-141-6/+7
|
* tor-circmgr: Add a new hspath module for building onion service circuits.Gabriela Moldovan2024-03-142-0/+78
|
* tor-circmgr: Implement AnonymousPathBuilder for ExitPathBuilder.Gabriela Moldovan2024-03-142-162/+27
|
* tor-circmgr: Add AnonymousPathBuilder trait.Gabriela Moldovan2024-03-141-4/+177
| | | | | | | | | | The `pick_path()` default implementation is an almost verbatim copy of `ExitPathBuilder::pick_path()`. The only difference is that instead of using values from `self`, the `AnonymousPathBuilder::pick_path()` uses the values returned by the different `AnonymousPathBuilder` functions (i.e., `AnonymousPathBuilder::pick_exit()` instead of `self.pick_exit()`, `AnonymousPathBuilder::compatible_with()` instead of `self.compatible_with`, etc.).