| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
arti: Configuration and RPC support for deferred bootstrapping
Closes #2547
See merge request tpo/core/arti!4056
|
| | | | | | | |
|
| | | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
This option will primarily be used by integrators who want to modify
the configuration, either directly or via RPC, before launching Arti
completely.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
proto: Add a new channel -> circuit queue type
See merge request tpo/core/arti!4025
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is needed for relays as part of #2490.
Note that changing this type affects the client implementation too (i.e.
clients will start prioritizing inbound DESTROY, discarding any queued
data without forwarding it to their local streams). But that's okay,
because it will generally only affect misbehaving clients, and clients
unlucky enough to encounter a hibernating relay.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`CircuitRxSender` is no longer a `Sink`, so we don't need this import
anymore.
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This adds new a `CircuitRxSender`/`CircuitRxReceiver` queue type.
The corresponding (`Sink`-link) sender and `Stream` implementations
prioritize the delivery of `DESTROY` messages, which get delivered
immediately, even if there are other messages queued in the underlying
MPSC message queue.
We are okay with the resulting data loss, because inbound DESTROY can be
indicative of malicious activity on the circuit. We choose to err on the
safe side, and free up the resources associated with such circuits as
soon as possible. DESTROY messages are also sent by relays when they're
about to hibernate, and by clients once they've decided to stop using a
circuit. In the latter case, the lack of an `RELAY_COMMAND_END_ACK`
does mean that this prioritization can cause data loss in cases where
the client closes the circuit immediately after END-ing a stream.
However, this is a deficiency in the protocol, and not something we want
to fix by implementing custom flushing logic in the reactor. See
torspec#196 and the discussion in #2490.
Part of #2490
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This passes now that we can build a `DataStream` without a
`ClientDataStreamCtrl`.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Previously this would panic.
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We will reuse `DataStream` for relay exit streams, and those aren't
going to have a `ClientDataStreamCtrl`.
Part of #2557
|
| | |/ /
|/| |
| | |
| | | |
Closes #2137.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-netdoc: Avoid use of string slices in PortPolicy
See merge request tpo/core/arti!4062
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit adds a tor-netdoc test for checking for an edge case related
to UTF-8 symbols found within netdocs.
See arti#2566
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit removes the use of string slices in PortPolicy::from_str()
by making use of `str::split_once` instead.
See arti#2566
Co-authored-by: 5225225 <[email protected]>
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
tor-netdoc: No longer import crate::Result in doc::netstatus
See merge request tpo/core/arti!4050
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This is a clearer.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Bump some deps that have had breaking changes
See merge request tpo/core/arti!4053
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Part of #2559
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It is weird to have three possible states for truthiness here.
This commit removes the Option in favor of the inner type while adding a
TODO comment to somehow find a way to skip this during encoding.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Adds a TODO for using ConstantString for overload_general.
|
| | | | |
| | | |
| | | |
| | | | |
This field is taken from the spec.
|
| | | | |
| | | |
| | | |
| | | | |
This commit adds the contact field to RouterDesc.
|
| | | | |
| | | |
| | | |
| | | | |
This commit adds support for the overload-general field to RouterDesc.
|
| |/ / / |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-netdoc Rename NetdocUnverified trait to NetdocParseableUnverified
See merge request tpo/core/arti!4043
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Apparently, it is only correct to write
[`NetdocParseableUnverified`](derive_deftly_template_NetdocParseableUnverified),
*after* the definition of that template. Before then, the macro isn't
in scope.
Worse, rustdoc just treats it as a filename and doesn't spot the link,
so you don't get any kind of warning. I think this is an upstream bug,
https://github.com/rust-lang/rust/issues/157304
I found rustdoc's behaviour capricious. I don't intend to go through
the arti tree right now looking for similar patterns. Instead let's
hope the upstream bug gets fixed, and in the meantime do this crate::
thing when we notice we need it.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The NetdocParseableUnverified derive macro implements this
trait (amongst other things). Traits and derive macros should have
aligned names.
This is only used for parsing, so let's keep the "Parseable" part of
the name.
I don't think the effort of deprecated alias, for downstream
compatibility, is worth it, our compatibility policy notwithstanding.
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
The trait is called NetdocUnverified, but the template is
NetdocParseableUnverified. This fixes a dead docs link (which somehow
isn't spotted by rustdoc, but is instead taken to refer to a
nonexistent file).
|
| | | |
| | |
| | |
| | | |
Signed-off-by: David Goulet <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Missed at review and no unit tests at the time catched those. The next
commit has a unit tests to make sure these checks are now valid.
Fixes #2501
Fixes #2502
Special thanks to Moumen Alaoui for reporting this early!
Signed-off-by: David Goulet <[email protected]>
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
client: Reflect manually disabled bootstrap in status
See merge request tpo/core/arti!4047
|
| | |/ /
| | |
| | |
| | |
| | | |
If we have made bootstrapping manual, and not launched a bootstrap,
we now reflect this as the reason that bootstrapping is blocked.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This fixes the minimal-versions test, since the new code in chanmgr sets
descriptions for the metrics, which is a feature not supported by the
previous version.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This adds a structure to initialize metrics when the `ChanMgr` is
created, and adds a counter for the total number of channels built,
broken down by success and failure.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At some earlier point in the development of this scheme, the ordering
was different (as it is in poc).
Update all the references in the docs, to the various varieties, so
that they are always plain, md, vote, like ns_type! et al take.
|
| | | | |
|
| |/ /
| |
| |
| | |
We do now support encoding.
|