| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Instead, return an error and make all call site handle it.
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Congestion control parameters have specific values depending on the
circuit type. Instead of using a CircuitType, which is removed in this
commit, specialize the function in this case onion and exit.
This allows us to get rid of CircuitType and solely use TargetCircUsage
instead.
At this commit, we use .expect() on the Builder. Future commit will
remove this to return a Result in case of failure. Worth noting that we
don't expect one.
Signed-off-by: David Goulet <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The congestion control parameters are created from the consensus
parameters (netparams) and then put into the CircParameters object that
is then passed down the tor-proto crate.
Because different parameters are selected depending on the circuit type
(onion vs exit vs sbws), a CircuitType enum is introduced for the sole
purpose of being used to select the right parameters.
Related #534
Signed-off-by: David Goulet <[email protected]>
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
As per #1479
|
| |
|
|
| |
As per #1479
|
| |
|
|
|
|
|
|
| |
This is the first step towards clarifying the questions from !2230.
Corresponding torspec changes: https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/282
Part of #1479
|
| |
|
|
| |
Fixes a TODO.
|
| |
|
|
|
|
|
|
|
| |
Plumb through a top-level account. This doesn't have any
channel-specific, circuit-specific or stream-specific accounts yet.
tor-circmgr's and tor-hsclient's *tests* need fake account.
In arti-relay, use a dummy account for now.
|
| | |
|
| |
|
|
|
|
| |
The `derive_more` crate broke backward compatibility with this version,
so this change involved quite a few manual fixups.
With luck, they'll keep compatibility for some while in the future.
|
| |
|
|
|
|
|
|
|
|
| |
This will allow for testing, as the CircuitBuilder can be replaced with
a mocked version.
This did require moving some of what was in the CircuitBuilder impl into
the AbstractCircuitBuilder type, since Drop implementations can't be
specialized, but that's fine, as we'll probably be doing more of that in
the future anyways.
|
| |
|
|
|
|
|
|
| |
This updates the code to match the spec.
This fixes TROVE-2024-008.
Closes #1474
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
This is just code motion: moving the vanguard-specific parts of
`maybe_extend_stub_circuit()` behind the `vanguards` feature will enable
us to refactor it to use `select_middle_for_vanguard_circuit()`, which
is only available if the `vanguards` feature is enabled.
|
| | |
|
| |
|
|
|
|
| |
This test is not new (it was added in !2168), but I think it's a good
idea to annotate the tests preventing security issues with the TROVE
number and/or arti ticket they pertain to.
|
| |
|
|
| |
Part of #1459
|
| |
|
|
|
| |
When extending SHORT circuit stubs, the last hop shouldn't be the same
as the circuit target.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Previously, the HsCircPool had a bug that caused SHORT lite-vanguards
circuits to be incorrectly extended by one hop when being repurposed as
EXTENDED circuits (EXTENDED circuits only need to be extended by extra
hop if full vanguards are in use).
Closes #1456 and #1458
|
| | |
|
| |
|
|
| |
target.
|
| |
|
|
|
|
|
| |
When checking for relay equality, we are happy to accept some false
positives (which result in building/selecting a different circuit). We
want to be less tolerant of false negatives, to avoid accidentally using
a circuit that doesn't have the properties we need.
|
| |
|
|
|
|
| |
This is a follow-up from !2167.
It should prevent issues like #1417 from going unnoticed.
|
| |
|
|
| |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2168?commit_id=3c67fa55c7c5b0c4f30c1d57e8e67fe541d9c99e#note_3033368
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Storing the VanguardMode in multiple places (in the VanguardMgr *and*
the HS circ Pool) is dangerous and can lead to split brain situations
where different parts of the code think they are running in different
VanguardModes.
See #1424
|
| |
|
|
|
|
|
| |
`VanguardMgr` should be the source of truth for obtaining the current
`VanguardMode`.
Closes #1424
|
| |
|
|
| |
See arti#1424
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, HS stub circuit selection (with vanguards enabled) was
buggy: when selecting a circuit stub from the circ pool, we failed to
ensure its last hop was different from the circuit target. So in some
cases, arti would attempt to extend a stub circuit of the form G -> L2
[-> L3] -> T to T, which can't work, because a relay won't extend a
circuit to itself (or to its predecessor, for that matter).
Closes #1417
|
| |
|
|
| |
This will soon grow more complex.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The previous STUB/STUB+ terminology was confusing, because STUB and
STUB+ are both "circuit stubs" (but STUB is shorter than STUB+).
Closes #1339
|
| |
|
|
| |
Part of #1339
|
| | |
|
| |
|
|
| |
Closes #1400
|
| |
|
|
|
|
| |
We're about to use this in `maybe_extend_stub_circuit` too.
Part of #1400
|
| |
|
|
| |
Otherwise we end up logging that we're launching 0 circuits.
|
| |
|
|
| |
The wanted_kind _does_ matter.
|
| | |
|
| |
|
|
| |
Closes #1385
|
| |
|
|
| |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2102#note_3024370
|