| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \
| | |
| | |
| | |
| | | |
tor-proto datastream: Do not dump packet data in DataWriterImpl
See merge request tpo/core/arti!353
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | | |
tor-proto: Split up a couple of handshake-based errors
Closes #359 and #358
See merge request tpo/core/arti!344
|
| | | |
| | |
| | |
| | |
| | | |
Remove default conversion; instead use a specific conversion in each
of the two modules that need to do it.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This helps the user distinguish between protocol violations that
happen when connecting to the tor network from those that happen
while connected.
Closes #358.
|
| | | |
| | |
| | |
| | | |
(We'll have a BadChanHandshake soon.)
|
| | |/
| |
| |
| |
| |
| |
| | |
We want to distinguish handshake failures from errors later on in
the channel's lifetime.
Closes #359.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Give specific error kinds to different END reasons
Closes #360
See merge request tpo/core/arti!343
|
| | |/
| |
| |
| | |
Closes #360.
|
| |\ \
| |/
|/|
| |
| | |
impl Debug for DataStream (and its components)
See merge request tpo/core/arti!351
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
My proximate motivation is that tls-api wants its inner streams to be
Debug. But in general, I agree with the Rust API Guidelines notion
that almost everything should be Debug.
I have gone for the "dump all the things" approach. A more nuanced
approach would be possible too.
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There was only one use of this, and it was in as-yet-unused relay-only
code.
Removing this type required refactoring the relay onion handshake code
to use its own error type, which is probably clever anyway.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This is a bit ugly but we need it to work around the problem where
exits aren't always clear about _why_ a hostname lookup failed.
|
| | | |
| | |
| | |
| | | |
Also document that it's a lower-level error kind.
|
| | | | |
|
| | |/ |
|
| |/
|
|
|
| |
This exception is no longer necessary now that the underlying CI bug
is fixed.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This took some refactoring, and gave an opportunity to notice
a few error variants that weren't being used, or didn't mean
what they said on the tin.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Additionally, refactor the IoError out of tor_cell::Error:
nothing in TorCell created this; it was only used by tor_proto.
This required refactoring in tor_proto to use a new error type. Here I
decided to use a new CodecError for now, though we may refactor that
away soon too.
|
| |\
| |
| |
| |
| |
| |
| | |
Change deny(clippy::all) to warn(clippy::all).
Closes #338
See merge request tpo/core/arti!306
|
| | |
| |
| |
| | |
Closes #338.
|
| |/
|
|
|
|
|
| |
This fixes a tiny race condition in the previous code, where we
checked whether an OptTimestamp is None a bit before we set it.
Since std::atomic gives us compare_exchange, we might as well use
it.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
Fix severe reactor ordering problems
See merge request tpo/core/arti!282
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A number of severe problems with the circuit reactor were fixed which
could cause reordering of cells (which causes relays to terminate the
circuit with a protocol violation, as they become unable to decrypt
them). These mostly revolve around improper usage of queues:
- The code assumed that a failure to place cells onto the channel would
persist for the duration of a reactor cycle run. However, under high
contention, this wouldn't always be the case.
- This leads to some cells getting enqueued while others go straight
through, before the enqueued cells.
- To fix this, we block sending cells out of the channel while there
are still some enqueued.
- The hop-specific queues queued after encryption, not before. This was
very brittle, and led to frequent mis-ordering.
- This was fixed by making them not do that.
This is arti!264 / 5bce9db5628126be2b736f228211174fe4132918 without the
refactor part.
|
| |\ \
| | |
| | |
| | |
| | | |
dir-client: bug fix and more tests
See merge request tpo/core/arti!271
|
| | |/
| |
| |
| |
| | |
Earlier versions have a bug in UnboundedReceiver that make our new
dirclient tests fail.
|
| |\ \
| | |
| | |
| | |
| | | |
Fix typos
See merge request tpo/core/arti!285
|
| | |/ |
|
| | | |
|
| |/
|
|
|
|
|
| |
Found via clippy::needless_borrow. In some cases I removed needless
`[..]` too. See also:
needless_borrow suggestion doesn't go far enough
https://github.com/rust-lang/rust-clippy/issues/8389
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This commit puts the native-tls crate behind a feature. The feature
is off-by-default in the tor-rtcompat crate, but can be enabled
either from arti or arti-client.
There is an included script that I used to test that tor-rtcompat
could build and run its tests with all subsets of its features.
Closes #300
|
| | |
|
| |
|
|
|
|
| |
As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/249#note_2771025
It doens't really handle it.
|
| |
|
|
|
|
|
|
|
| |
read_exact has a loop in it, which we need.
This means we end up separating the two sites that generate the "not a
relay" error, so we need to fish out the error construction.
As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/249#note_2771023
|
| | |
|
| |
|
|
| |
Discovered by clippy
|
| |\
| |
| |
| |
| | |
chanmgr: get rid of Arc around Channel
See merge request tpo/core/arti!236
|