| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ |
|
| | |
| |
| |
| |
| |
| | |
To implement this, we had to refactor the tor_circmgr api for
flushing state changes to disk, so that it checks if it has the lock,
and only then tries to store.
|
| | |
| |
| |
| | |
Also add some TODO comments in circmgr for future work.
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Remove clippy::needless_borrow exception in CI.
Closes #310
See merge request tpo/core/arti!338
|
| | |
| |
| |
| |
| | |
This exception is no longer necessary now that the underlying CI bug
is fixed.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We handle them by reporting them to task that's waiting for the
circuit, then relaying the panic.
Doing so allows the waiting task to distinguish panics
(EK::Internal) from cases where the reactor dropped the task
entirely (EK::ReactorShuttingDown). And doing _that_ removes one
case of EK::Canceled, which helps us on our goals towards #348.
Closes #347.
|
| |/
|
|
| |
This reduces our nesting, and will help us handle panics.
|
| |\ |
|
| | | |
|
| | |
| |
| |
| | |
We can't use discriminants here now, but maybe we can in the future.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
From its old name, this error had implied that we were giving no
useful information when we were waiting on a pending cirucit request
that failed. In fact, this error would only happen if we dropped the
`mpsc::Sender` for a circuit attempt without reporting success or
failure.
|
| | |
| |
| |
| | |
(Instead of reporting the _last_ error, report the _worst_ error.)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These errors should almost never be seen by the user; we should instead
retry the circuit. But they _can_ be seen by the use if selecting a
guard takes too long, or too many attempts. (Therefore, they aren't true
"internal" errors.)
I suspect that we might not want to keep this TransientFailure kind, but
I'm not sure what else to do here for now.
|
| | |
| |
| |
| | |
There are a couple of tricky ones I'll do separately.
|
| | | |
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
| |
In one of the two places, nightly no longer warns. In the other
place, it's fine for nightly to warn: I just fixed the code to take
a slice instead.
Partial revert of 856aca879151c622512bc4b15c6307808fc83e82.
Resolves part of #310.
|
| | |
|
| |
|
|
| |
Closes #338.
|
| |
|
|
|
|
| |
This edge-case was there even before the migration of
595fe1ab881b94106649, but now it's more explicit and ought to be
revisited.
|
| | |
|
| | |
|
| |
|
|
|
| |
(By our convention, these errors should say what we were trying to
spawn when the error occurred.)
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Provide an enum variant to contain the SpawnError and a From impl.
We use `#[from]` here because it doesn't really make sense to attach
any context, as it's not likely to be very relevant.
|
| |
|
|
| |
Doing this here makes it easier when I rebase/reorder things
|
| |
|
|
| |
This will be used for error handling, and perhaps other things.
|
| |
|
|
|
|
|
|
| |
The type annotation may not be necessary for inference, but as a
comment it risks becoming false. So it should be uncommented, or
deleted.
Error types round here are not entirely trivial so uncomment it.
|
| |\
| |
| |
| |
| | |
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
|
| | |/ |
|
| | | |
|
| |/
|
|
|
|
| |
Prompted by clippy::needless_question_mark. Sometimes Ok(r?) is
needed to do automatic error conversion. I assume the lint checks for
that. Anyway, in these cases it's not needed.
|
| |
|
|
|
|
|
|
| |
tor-netdir needs to bump because tor-netdoc bumped, even though
there were no other changes in tor-netdir. Whoops.
tor-guardmgr needs to bump because it already published, with the
older tor-netdir.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Refactor our Runtime implementations to allow replacement parts
Closes #255
See merge request tpo/core/arti!251
|
| | |
| |
| |
| |
| | |
This will make it easier to implement them using some other TLS
provider as well, without having to duplicate all of our code.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The docs even say this is about stream.
As @nickm writes in
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/252#note_2771289
we generally call end-to-end connections that are tunneled over Tor
"Streams" to distinguish them from everything else in the Tor
protocols that could possibly be called a "Connection".
That seems to apply here too.
|
| | |
| |
| |
| |
| |
| | |
This is totally not just an exercise to get combined test coverage
for tor-circmgr over 90% because I needed something to do that
wouldn't distract anybody else. :)
|
| | |
| |
| |
| |
| |
| | |
Since it implements a "<=" type relationship, it should be called
"at_least_as_permissive_as()." Since it's a crate-private function,
the long name isn't too bad.
|
| |/
|
|
| |
This was added by mistake.
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Fix ticket 178: Don't use a NetDir until we have microdescriptors for all of our primary guards.
Closes #178
See merge request tpo/core/arti!220
|