| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This removes a lot of open-coded Arc::ptr_eq() calls
Signed-off-by: Ian Jackson <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This will make the code work when it's not an Arc any more.
Signed-off-by: Ian Jackson <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We are going to get rid of a lot of Arc, so we need the underlying
thing to be Clone.
Signed-off-by: Ian Jackson <[email protected]>
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
tor-circmgr: Remove a type annotation in a method call
See merge request tpo/core/arti!225
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a method, so the resolution is automatic. It's not clear to
me why this was written out this way, given that extend_ntor is right
above.
Signed-off-by: Ian Jackson <[email protected]>
|
| |/ / |
|
| |\ \
| | |
| | |
| | | |
# Conflicts:
# crates/tor-circmgr/src/build.rs
|
| | |\ \
| | |/
| |/|
| | |
| | | |
prefer 'unwrap_or_default' to manual constructor
See merge request tpo/core/arti!215
|
| | | | |
|
| | | | |
|
| | |\ \ |
|
| | | |/ |
|
| | |\ \ |
|
| | | |/ |
|
| | |\ \ |
|
| | | |/ |
|
| | |/ |
|
| |/ |
|
| |
|
|
|
|
|
| |
This closes arti#256. It makes our behavior match Tor's more closely,
though it has a simpler implementation than Tor. I think that the extra
complexity in Tor's logic is because we used to record timeouts in
the histogram as well as in the success/failure log.
|
| |\
| |
| |
| |
| | |
preemptive.rs: Use Instant::checked_add instead of raw subtraction
See merge request tpo/core/arti!206
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The implementations of `Add` / `Sub` (et al.) on `std::time::Instant`
can panic if the underlying OS structure can't represent the result
(like arti#266). Use Instant::checked_add and print a warning instead,
to prevent panicking.
Also, we now add instead of subtracting; I suspect it's reasonable that
you might not be able to go backward past the first `Instant` created on
some platforms, but going *forward* should probably work?
|
| |\ \
| | |
| | |
| | |
| | | |
address clippy's latest lint
See merge request tpo/core/arti!205
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
These will require thought; should we ignore them, act on them, or
continue to treat them as internal errors?
|
| | | |
| | |
| | |
| | |
| | |
| | | |
IIUC, these anticipatd a need to store min_exit_circs_per_port in
CircMgr. But the current design, where it goes into preemptive.rs and
thence to usage, seems to work fine.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
We _do_ reject bad hostnames: just not where I once thought we might.
We need to decide if the current behavior is what we want (and I think
it is, probably?).
|
| | | |
| | |
| | |
| | | |
We're assuming that prop285 is accepted in some form.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Our behavior in handling not-yet-valid router descriptors doesn't match
the C Tor implementation, but it's not a big deal:
we don't currently use router descriptors at all.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
If we fail to convert a curve25519 key to an ed25519 key for checking
the onion-key crosscert, don't call that an internal error: it means
that something is wrong with the provided ntor key.
|
| |/ /
| |
| |
| |
| | |
As of tor-spec commit 01122c5bd7d2f0f, the spec is no longer ambiguous
on this point.
|
| |\ \
| | |
| | |
| | |
| | | |
tor-proto: Allow one meta-cell handler at a time.
See merge request tpo/core/arti!204
|
| | | |
| | |
| | |
| | |
| | | |
Previously the code would let us try to install a meta-cell handler
before the old one was done, leading to possible confusion.
|
| |\ \ \
| |/ /
|/| /
| |/
| | |
Introduce an experimental benchmarking utility for Arti
See merge request tpo/core/arti!195
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new `arti-bench` crate does a simple end-to-end benchmark test
embedding Arti: it generates some random data (of configurable amount,
depending on command-line parameters), and then sends said data back and
forth via Arti (which should be configured to use a local Chutney
network).
Additionally, the benchmark can also be run via a local SOCKS5 server
(in order to benchmark the performance via a local Chutney node, for
comparison).
The `tests/chutney/arti-bench.sh` sets up and tears down Chutney as
required to make this work.
This is very much a first cut; there are many things that should
eventually get added, such as support for multiple connections, JSON
output capabilities, running multiple tests, ...
|
| |\ \
| | |
| | |
| | |
| | | |
fallbackdir: Update list generated on December 15, 2021
See merge request tpo/core/arti!202
|
| | | |
| | |
| | |
| | | |
Signed-off-by: Tor CI Release <[email protected]>
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-proto: use const-time eq on sendme tags.
See merge request tpo/core/arti!201
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
There's no known attack here, but it's best practice to always compare
digests using a constant-time comparison operator.
This resolves an XXXX comment.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously we'd always set it to true, allowing one CONNECTED per
half-closed stream even if the stream had already received a
CONNECTED cell.
This resolves an XXXX.
|
| |/ / |
|
| | |
| |
| |
| |
| | |
This was an XXXX before. Now it explains why the behavior is safe for
now, but maybe not forever.
|
| | |
| |
| |
| |
| | |
The original comment was a gnomic question about what to box; the real
issue is that we want to avoid copying data in our critical path.
|
| | |
| |
| |
| |
| |
| |
| | |
Previously we didn't retain the value of our cache_usage field when
calling reset() from GetMicrodescsState.
This resolves an XXXX comment.
|
| |\ \
| | |
| | |
| | |
| | | |
Extend trace messages for destroy/truncated reasons.
See merge request tpo/core/arti!200
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It makes sense to put the method for human-readable strings onto the
type itself, so that we can format these whenever they occur.
I'm choosing the "human_str" method name here, since caret-generated
types already have a to_str. I was thinking about using Display,
but caret types already implement that.
I've also moved the message from "warn!" to "debug!", since these
aren't necessarily a problem condition.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Refactor directory events to use a new FlagPublisher mechanism.
See merge request tpo/core/arti!188
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This approach tries to preserve the current interface, but uses a
counter-based event backend to implement a coalescing stream of
events that can be represented as small integers. The advantage
here is that publishing events no longer needs to be a blocking
operation, since there is no queue to fill up.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This warning occurs if we ask for microdescriptors from our local
cache, and our cache gives us something we didn't ask for. It
shouldn't be possible, so let's warn when it occurs.
This patch resolves an XXXX.
|
| | | | | |
|
| | | | | |
|