| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| |
| |
| | |
tor-proto: Disable flow control sidechannel mitigations for relays
Closes #2579
See merge request tpo/core/arti!4324
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The end result should be:
1. outgoing streams - enable sidechannel mitigations
2. incoming hs streams - enable sidechannel mitigations
3. incoming exit streams - disable sidechannel mitigations
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Split OTLP exporter into separate crate.
Closes #2611
See merge request tpo/core/arti!4297
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Mostly relating to typos and dependencies.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This reverts commit 95db661dc6be2ad6ed87f34094542660b9e0e155.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This contains configuration types that are shared between arti and
arti-rely.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This will allow this code to be shared between arti and arti-relay.
See: #2470
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
While it's true that TOML doesn't allow explicitly setting None values,
None is also used to represent a key not being in a table, which is a
valid thing to want in the case of a duration.
Fixes: #2611
|
| | | |
| | |
| | |
| | |
| | | |
This will allow this code to be shared between arti and arti-relay,
and will also likely be useful for others in the ecosystem.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
CI: Stop using `./maint/preserve` for `target/doc/`
See merge request tpo/core/arti!4315
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I think the original intent was to save the rustdoc build as an
artifact. But by using `./maint/preserve`, we preserve the docs between
jobs, which is not what we want.
Instead, we just save the rustdoc build as an artifact.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
arti: Preparation for RPC configuration management, part 1
See merge request tpo/core/arti!4322
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This will be the basis for configuration _inspection_.
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
(But before the watcher task is launched.)
|
| | | | | | |
|
| | | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
We want to be able to create the CfgMgr early so that we can give it
to the RPC code, then add a bunch of reconfigurable modules to it,
and only then launch the file-watcher task.
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
Initialize extra-info module
See merge request tpo/core/arti!4284
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit initializes the doc::extra_info module in tor-netdoc, which
is still marked as incomplete and will be extended in the future.
Right now, it is very barebones by only supporting the introduction item
as well as the bare minimum required for verification.
It also adds a simple unit test, which iterates over the available test
data, parses and verifies it.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto: Fix tests build error when "testing" feature isn't enabled
See merge request tpo/core/arti!4319
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes:
```text
$ cargo test -p tor-proto --features relay
error[E0603]: enum import `CtrlMsg` is private
--> crates/tor-proto/src/relay/reactor.rs:463:33
|
463 | use crate::channel::CtrlMsg;
| ^^^^^^^ private enum import
|
note: the enum import `CtrlMsg` is defined here...
--> crates/tor-proto/src/channel.rs:117:5
|
117 | use testing_exports::*;
| ^^^^^^^^^^^^^^^^^^
note: ...and refers to the enum import `CtrlMsg` which is defined here...
<snip>
```
There are a few ways we could fix this, but I don't see an advantage of
one over another.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
proto: Avoid sending DESTROY if we have received DESTROY
Closes #2646 and #2648
See merge request tpo/core/arti!4312
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This extends the `destroy_from_client()` test to also check that a
DESTROY received from the client (or, more generally speaking, from the
"inbound channel") is actually forwarded to the next hop.
The reason the `assert_destroy_sent()` assertion is commented out is
specified in the TODO that precedes it (tldr: testing the DESTROY
behaviour involves both the channel reactor and the circuit reactor, and
our test setup is currently quite limited, in that it doesn't actually
exercise the right channel reactor code paths for the *inbound*
channel). I plan to address this soon.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
I am about to need this in a test.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This fixes an old bad copy-paste that I've just noticed.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This adds an example suggested by opara.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We need this because the channel reactor now only sends DESTROY for
circuits that are still in the circ map (and we are about to test this
behaviour, so we need the circuit map to actually have an entry for our
test circuit).
Initially, these tests were meant to test the circuit reactor in
isolation, but they've gradually grown more complex, and now require
a semi-working channel reactor. In the long run, I think I'd like to:
* change the tests from `tor_proto::relay::reactor` to use a proper
relay channel reactor as opposed to a `working_dummy_channel()`, and
to initialize a circuit through the normal means, namely by sending
a CREATE2 through the channel reactor (naturally, this "proper relay
channel reactor" still wouldn't be connected to the network). These
will test the integration between the channel and the circuit
reactor, as well as the circuit reactor behaviour
* add new, implementation-agnostic tests for the generic multi-reactor
system. These will use a mock channel reactor
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The relay circuit reactor tests will soon need the ability to send
control messages (for allocating a circuit id for the circuit reactor
under test).
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Now that we no longer respond to DESTROY by sending a DESTROY ourselves,
these tests need to be updated.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This test simulates the *next hop* sending us a DESTROY.
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change prevents the channel reactor from sending DESTROY cells on
already-closed (or non-existent) circuits. Upon receiving a DESTROY
cell, the channel reactor removes the corresponding circuit entry, if
any, from its circmap. It then passes the DESTROY to the circuit reactor
for handling. The circuit reactor handles it by shutting down, and
calling `Channel::close_circuit()` on drop. Previously, this would
unconditionally send a DESTROY cell, which caused #2648 and #2646.
This affects both clients and relays, because both circuit reactors call
`Channel::close_circuit()` on drop.
Closes #2648, #2646
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-persist: fix display of Target path(s).
See merge request tpo/core/arti!4317
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch changes how display works on our Target struct. Currently,
log messages generated by Arti Relay looks like this:
`tor_persist::load_store: storing
"/path/to/arti-relay/state"/"circuit_timeouts.json"`
With this patch applies it instead looks like this:
`tor_persist::load_store: storing
"/path/to/arti-relay/state/circuit_timeouts.json"`
With this change we ensure that the correct delimiter between the
directory and the filename is used (on Unix it's "/", but on Windows
it's "\") and we also avoid the added "" around both the directory and
filename.
|