| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
| |
These crates have upgraded to a newer derive_more,
and have had no other changes.
|
| |\
| |
| |
| |
| |
| |
| | |
Make DataStream, and its members, implement Sync.
Closes #1859
See merge request tpo/core/arti!2808
|
| | |
| |
| | |
Co-authored-by: Ian Jackson <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| | |
Also, use static_assertions to enforce that that they
_stay_ Send+Sync.
Closes #1859.
|
| |\ \
| | |
| | |
| | |
| | | |
tor-keymgr: Minor README updates
See merge request tpo/core/arti!2806
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
arti: Disable color when stdout is not a tty.
Closes #1763 and #1862
See merge request tpo/core/arti!2802
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Closes #1763.
Closes #1862.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto: Add ConfluxSet type in the reactor
See merge request tpo/core/arti!2804
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
As suggested by opara in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2804#note_3165059
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It used to be a Reactor, but the `reactor` variable name no longer makes
sense.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This helps us get rid of some unnecessary error handling.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2804#note_3165058
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
We definitely don't want to ever allow this.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, sending two `CtrlMsg::Create` to the reactor would cause it
to panic. This makes it so that the double `Create` just leads to the
caller receiving an error response via the completion channel.
Note: this was not triggerable via the network, only via the tor-proto
API. Moreover, the panic was unreachable from the public client API,
because the `PendingClientCirc`/`ClientCirc` typestate makes it
impossible to send a second `Create` (the `PendingClientCirc` becomes
`ClientCirc` after the `Create` completes, and `PendingClientCirc`
doesn't have an API for sending `Create` control messages to the
reactor).
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is the first step toward supporting traffic splitting in the
circuit reactor.
While the logic has changed slightly to support handling circuits
instead of just one, the reactor still only supports `ConfluxSet`s of
size 1, so this should effectively be a no-op. In the future, this code
will be extended to support the conflux-specific cells and to implement
the conflux proto.
The code uses `ConfluxSet::primary_leg()` and `ConfluxSet::single_leg()`
somewhat interchangeably. This is not *currently* a problem
because`primary_leg()` is the same as `single_leg()` for single path
tunnels, but we will need to adjust some of these call sites when we add
support for multipath tunnels (I have left a `TODO(conflux)` for every
dubious call site).
This commit also makes `CtrlMsg::FirstHopClockSkew` fallible: if the
reactor is multipath, it will return `Err(Bug(..))` to the caller (this
error is returned to the caller over the `answer` channel; it does *not*
shut down the reactor)
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is an intermediate step in rewriting the reactor to manage a
"conflux set" (a set of linked circuits) rather than a single circuit.
This commit contains no functional changes.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These will soon be functions on `Circuit`, so it's a good time to pull
them out of the reactor impl.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This reorders the functions from the `Reactor` implementation in
preparation for moving some of them to `Circuit`. This commit contains
no functional changes and should be reviewed with `git diff
--color-moved`.
A future commit will move part of the `Reactor` impl block to `Circuit`.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I am moving these handlers into a separate type because they'll need to
be shared with the active `Circuit`, for handling incoming cells.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This represents a circuit "leg", in the conflux sense. The `Circuit`
type will be a helper for implementing tunnel reactors that contain
multiple `Circuit`s forming a conflux set.
The fields from `Circuit` were extracted from the `Reactor` struct. A
future commit will part of the `Reactor` implementation to `Circuit`.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
For readability
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We will soon have a `ConfluxSet` type. Some of its operations will
return `Bug` (for example, the method for getting the *only* leg of the
conflux set will return a `Bug` if the set has no legs, or more than 1
leg).
This conversion function will make it easier these errors to
`ReactorError`.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Upgrades for next release
See merge request tpo/core/arti!2809
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This took a little refactoring, since derive_more::Foo
no longer re-exports std::ops::Foo.
|
| | | |_|/
| |/| | |
|
| |/ / / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Client implementation for happy families
Closes #1848
See merge request tpo/core/arti!2792
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This implements the client side of proposal 321.
It's a breaking change in netdir, since in_same_family now takes an
extra argument.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When we're trying to exclude relays by family,
we need to know which lists to look at.
This information ultimately comes from the network parameters.
We could avoid this change if we just told clients
"look at all family information all the time",
but that's not what the proposal says.
This is a breaking change.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This will affect some details of path selection as we provide more
info about families.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|